iOS10 UI教程管理層次結構

iOS10 UI教程管理層次結構

iOS10 UI教程管理層次結構,在一個應用程序中,若是存在多個層次結構,就須要對這些層次結構進行管理。在UIView類中提供了能夠用來管理層次結構的方法,讓開發者能夠添加、移動、刪除來自層次結構中的元素。開發者能夠在視圖的實例上直接使用這些方法。如下將講解3種管理層次結構的方法,分別爲添加視圖、插入視圖以及移除視圖。swift

1.添加視圖ide

添加視圖能夠使用addSubview(_:)方法,此方法能夠添加一個視圖到子視圖列表的末尾。被添加的視圖被做爲相同子視圖的同級。同級子視圖會被分配一個基於插入的順序的索引,如圖1.14所示。這個索引又對應於一個繪製順序,索引值高的繪製在前,而索引值低的,繪製在前面同級視圖的後面。其語法形式以下:spa

func addSubview(_ view: UIView)

其中,view用來指定要插入的視圖。.net

2.插入視圖設計

insertSubview(_:)方法添加的視圖中能夠顯示在同級視圖的前面。若是想要在任意同級視圖的先後插入視圖能夠使用3個方法,分別爲insertSubview(_:at:)方法、insertSubview(_:aboveSubview:)或者是insertSubview(_:belowSubview:)方法。code

(1)insertSubview(_:at:)方法能夠在指定的索引處插入視圖,其語法形式以下:對象

func insertSubview(_ view: UIView, at index: Int)

其中,view用來表示插入的視圖,index用來指定索引。blog

(2)insertSubview(_:aboveSubview:)方法能夠在層次結構中插入一個視圖,而且這個視圖插入到指定視圖的上面。其語法形式以下:教程

func insertSubview(_ view: UIView, aboveSubview siblingSubview: UIView)

其中,view用來表示插入的視圖,siblingSubview用來指定視圖。索引

(3)insertSubview(_:belowSubview:)方法也能夠在層次結構中插入一個視圖,而且這個視圖插入到指定視圖的下面。其語法形式以下:

func insertSubview(_ view: UIView, belowSubview siblingSubview: UIView)

其中,view用來表示插入的視圖,siblingSubview用來指定視圖。

【示例1-7:insertSubView】如下將使用insertSubview(_:at:)方法在界面中插入2個視圖。具體的操做步驟以下:

(1)打開Main.storyboard文件,對主視圖進行設計,效果如圖1.15所示。

圖1.15  主視圖的效果

須要添加的視圖以及對它們的設置如表1-1所示。 

表1-1  對視圖對象的設置

(2)打開ViewController.swift文件,編寫代碼,在指定索引處插入視圖。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        //插入藍色的空白視圖

        let view1=UIView(frame:CGRect(x: 16, y: 76, width: 343, height: 272))

        view1.backgroundColor=UIColor.blue

        view.insertSubview(view1, at: 1)

        //插入紅色的空白視圖

        let view2=UIView(frame:CGRect(x: 16, y: 220, width: 343, height: 272))

        view2.backgroundColor=UIColor.red

        view.insertSubview(view2, at: 3)

    }

……

}

此時運行程序,會看到如圖1.16所示的效果。

圖1.16  運行效果

3.移除視圖

當在應用程序中有再也不使用的視圖,就應當及時的從層次結構中移除,這樣便於對層次結構的管理,此時使用到removeFromSuperview()方法。其語法形式以下:

func removeFromSuperview()

iOS10 UI教程管理層次結構

相關閱讀:iOS10 UI教程子視圖和父視圖

相關文章
相關標籤/搜索