iOS10 UI教程层次结构的事件
2019獨角獸企業重金招聘Python工程師標準>>>
iOS10 UI教程層次結構的事件
iOS10 UI教程層次結構的事件,層次結構中存在7個事件,對于這些事件的介紹如表1-3所示。通過這些事件,可以監聽視圖,當視圖在層次結構上發生變化時可以被攔截,也可以通過父視圖或子視圖進行管理。
表1-3??層次結構的事件
| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 事件 | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 功能 |
| ? ? ? ? ? ? ? didAddSubview(_:)? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 當加入視圖完成后調用 |
| ? ? ? ? ? ? ? willRemoveSubview(_:)? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在刪除視圖之前調用 |
| ? ? ? ? ? ? ? willMove(toSuperview:)? ?? ? ? ?? | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 當移動視圖之前調用 |
| ? ? ? ? ? ? ? didMoveToSuperview() | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 當視圖移動完成后調用 |
| ? ? ? ? ? ? ? willMove(toWindow:) | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 當視圖移動到WINDOW之前調用 |
| ? ? ? ? ? ? ? didMoveToWindow() | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 當視圖移動到WINDOW后調用 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? |
【示例1-9:HierarchyEvents】以下將使用層次結構的事件實現視圖的監聽。具體的操作步驟如下:
(1)創建一個基于UIView的類文件,命名為CustomView。
(2)打開CustomView.swift文件,編寫代碼,通過層次結構的事件監聽視圖。代碼如下:
import UIKitclass CustomView: UIView {//當視圖移動完成后調用override func didMoveToSuperview() {print("I have a superview!")}//當加入視圖完成后調用override func didAddSubview(_ subview: UIView) {print("The subView \(subview) has been added")}//當視圖移動到WINDOW后調用override func didMoveToWindow() {print("I've been attached to this window hierarchy:\(window!)")}}(3)打開Main.storyboard文件,選擇主視圖,在Show the Identity inspector面板中找到Class,將其設置為剛才創建的類即CustomView。此時運行程序,會在應用程序輸出窗口輸出以下內容:
The subView <_UILayoutGuide: 0x7fbd57a00c40; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x600000028fe0>> has been addedThe subView <_UILayoutGuide: 0x7fbd57a07990; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x600000029000>> has been addedI've been attached to this window hierarchy:<UIWindow: 0x7fbd55c05f70; frame = (0 0; 375 667); gestureRecognizers = <NSArray: 0x618000054430>; layer = <UIWindowLayer: 0x618000029dc0>>I have a superview!iOS10 UI教程層次結構的事件
相關閱讀:iOS10 UI教程視圖和子視圖的可見性?
轉載于:https://my.oschina.net/u/1585857/blog/794351
總結
以上是生活随笔為你收集整理的iOS10 UI教程层次结构的事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: operator模块
- 下一篇: Linux 查看进程和删除进程