iOS10 UI教程层次结构的事件

Posted 大学霸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS10 UI教程层次结构的事件相关的知识,希望对你有一定的参考价值。

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 UIKit

class 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 added

The subView <_UILayoutGuide: 0x7fbd57a07990; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x600000029000>> has been added

I\'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教程视图和子视图的可见性 

以上是关于iOS10 UI教程层次结构的事件的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法以编程方式为 iOS 上的 3rd 方应用程序获取 UI 层次结构?

iOS10 UI教程视图的几何形状

iOS 中深度嵌套的视图层次结构可以吗?

iOS 事件响应者链的学习(也有叫 UI连锁链)

哪个框架可用于在 Android 上绘制复杂的交互式 UI 层次结构? (就像 iOS 上的 CoreAnimation)

在 Android Navigation 组件中使用 backstack 打开不同层次结构中的片段