iOS10 UI教程子視圖和父視圖UI層次結構和Views繼承,本節將講解與UI層次結構和Views繼承相關的內容,其中包括子視圖和父視圖、管理層次結構、視圖和子視圖的可見性、層次結構的事件等內容。swift
每個UIView(或者是子類)的實例均可以與其它的視圖使用父-子關係的方式進行鏈接。其中父視圖被稱爲superview(超視圖),孩子視圖被稱爲subviews(子視圖)。一個視圖能夠有且僅有一個父視圖,可是能夠有多個子視圖,如圖所1.12示。ide
圖1.12 父視圖和子視圖spa
對於父視圖的訪問開發者能夠使用superview屬性,其語法形式以下:.net
var superview: UIView? { get }
對應子子視圖的訪問能夠使用subviews屬性,其語法形式以下:code
var subviews: [UIView] { get }
【示例1-6:SuperViewAndSubView】如下將經過superview屬性和subviews屬性對空白視圖的背景顏色進行設置。具體的操做步驟以下:blog
(1)打開Main.storyboard文件,從視圖庫中拖動View空白視圖到View Controller的主視圖中,將此空白視圖的位置和大小調整爲(16, 107, 343, 423)。爲此視圖聲明和關聯插座變量view1。繼承
(2)從視圖庫中拖到第二個View空白視圖到View Controller的主視圖中,並將此視圖放置在view1視圖中,將此視圖的位置和大小調整爲(51, 147, 240, 128)。爲此視圖聲明和關聯插座變量view2。教程
(3)打開ViewController.swift文件,編寫代碼,爲視圖改變背景顏色。代碼以下:索引
import UIKit class ViewController: UIViewController { @IBOutlet weak var view1: UIView! @IBOutlet weak var view2: UIView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let parentView=view2.superview //獲取view2的父視圖 let children=view1.subviews //獲取view1的子視圖 parentView?.backgroundColor=UIColor.red children[0].backgroundColor=UIColor.yellow } …… }
此時運行程序,會看到如圖1.13所示的效果。事件
圖1.13 運行效果 圖1.14 索引
相關閱讀:iOS10 UI教程視圖的中心位置