iOS10 UI教程層次結構的事件

大學霸發表於2016-11-25

iOS10 UI教程層次結構的事件

iOS10 UI教程層次結構的事件,層次結構中存在7個事件,對於這些事件的介紹如表1-3所示。透過這些事件,可以監聽檢視,當檢視在層次結構上發生變化時可以被攔截,也可以透過父檢視或子檢視進行管理。

1-3  層次結構的事件

事件

功能

didAddSubview(_:)

當加入檢視完成後呼叫

willRemoveSubview(_:)

在刪除檢視之前呼叫

willMove(toSuperview:)

當移動檢視之前呼叫

didMoveToSuperview()

當檢視移動完成後呼叫

willMove(toWindow:)

當檢視移動到WINDOW之前呼叫

didMoveToWindow()

當檢視移動到WINDOW後呼叫

【示例1-9HierarchyEvents】以下將使用層次結構的事件實現檢視的監聽。具體的操作步驟如下:

1)建立一個基於UIView的類檔案,命名為CustomView

2)開啟CustomView.swift檔案,編寫程式碼,透過層次結構的事件監聽檢視。程式碼如下:


點選(此處)摺疊或開啟

  1. import UIKit
  2. class CustomView: UIView {
  3.     //當檢視移動完成後呼叫
  4.     override func didMoveToSuperview() {
  5.         print("I have a superview!")
  6. }
  7.     //當加入檢視完成後呼叫
  8.     override func didAddSubview(_ subview: UIView) {
  9.         print("The subView \(subview) has been added")
  10. }
  11. //當檢視移動到WINDOW後呼叫
  12.     override func didMoveToWindow() {
  13.         print("I've been attached to this window hierarchy:\(window!)")
  14.     }
  15. }

3)開啟Main.storyboard檔案,選擇主檢視,在Show the Identity inspector皮膚中找到Class,將其設定為剛才建立的類即CustomView。此時執行程式,會在應用程式輸出視窗輸出以下內容:


點選(此處)摺疊或開啟

  1. The subView <_UILayoutGuide: 0x7fbd57a00c40; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x600000028fe0>> has been added
  2. The subView <_UILayoutGuide: 0x7fbd57a07990; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x600000029000>> has been added
  3. I've been attached to this window hierarchy:<UIWindow: 0x7fbd55c05f70; frame = (0 0; 375 667); gestureRecognizers = <NSArray: 0x618000054430>; layer = <UIWindowLayer: 0x618000029dc0>>
  4. I have a

iOS10 UI教程層次結構的事件

相關閱讀:iOS10 UI教程檢視和子檢視的可見性 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2129089/,如需轉載,請註明出處,否則將追究法律責任。

相關文章