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教程层次结构的事件的更多相关文章

  1. iOS10 UI教程视图调试

    iOS10 UI教程视图调试 iOS10 UI教程视图调试,当视图很复杂的时候,层次结构就不会很简单了.Xcode可以通过视图(View)调试帮助开发者解决层次结构复杂的问题.视图调试是在Xcode ...

  2. iOS10 UI教程子视图和父视图UI层次结构和Views继承

    iOS10 UI教程子视图和父视图UI层次结构和Views继承 iOS10 UI教程子视图和父视图UI层次结构和Views继承,本节将讲解与UI层次结构和Views继承相关的内容,其中包括子视图和父视 ...

  3. iOS10 UI教程管理层次结构

    iOS10 UI教程管理层次结构 iOS10 UI教程管理层次结构,在一个应用程序中,如果存在多个层次结构,就需要对这些层次结构进行管理.在UIView类中提供了可以用来管理层次结构的方法,让开发者可 ...

  4. iOS10 UI教程视图的绘制与视图控制器和视图

    iOS10 UI教程视图的绘制与视图控制器和视图 iOS10 UI视图的绘制 iOS10 UI教程视图的绘制与视图控制器和视图,在iOS中,有很多的绘图应用.这些应用大多是在UIView上进行绘制的. ...

  5. iOS10 UI教程视图和子视图的可见性

    iOS10 UI教程视图和子视图的可见性 iOS10 UI教程视图和子视图的可见性,一个父视图可以通过clipsToBounds属性,定义子视图在边界(边界就是父视图的框架也就是父视图可以显示的范围) ...

  6. iOS10 UI教程视图的中心位置

    iOS10 UI教程视图的中心位置 center表示的是视图的中心位置属性,这个属性在相对的UI层次结构上工作,和frame类似.center属性是一个在父视图上定义视图的位置的简便方法.center ...

  7. iOS10 UI教程基改变视图的外观与视图的可见性

    iOS10 UI教程基改变视图的外观与视图的可见性 视图是应用程序的界面,是用户在屏幕上看到的对象.用户可以通过触摸视图上的对象与应用程序进行交互,所以视图界面的优劣会直接影响到了客户体验的好坏.和视 ...

  8. iOS10 UI教程基础窗口的内容与设置起始窗口

    iOS10 UI教程基础窗口的内容与设置起始窗口 iOS10 UI教程基础窗口的内容与设置起始窗口,本章我们从iOS10开发中UI的基础知识开始讲解,其中包括了窗口.视图以及UI层次结构和Views的 ...

  9. iOS10 UI教程视图的生命周期

    iOS10 UI教程视图的生命周期 说到视图的生命周期一般都是指视图控制器的视图生命周期.在视图的声明周期中最主要的有8个方法,分别为loadView().viewDidLoad().viewWill ...

随机推荐

  1. 【QT】视频播放

    在网上没找到,在书上也没有.后来突然想直接在官网的类里面找Video 居然就有了. 把http://qt-project.org/doc/qt-5/qmediaplayer.html的例子补充完整后就 ...

  2. #ifndef -摘自百度百科

    #ifndef 标识1 //判断"标识1"是否定义,如果被定义则返回假,如果没有被定义则返回真. /**********************************/ 语句1 ...

  3. 【Git】标签管理

    来源:廖雪峰 为什么要标签: 发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来. ...

  4. 生成Geometry

    // 由一组点集生成一张三角面片网格Geometry osg::Geometry* createTRIANGLESGeometry(MyMesh &mesh) { osg::ref_ptr&l ...

  5. 43个优秀的Swift开源项目

    作为一门集百家之长的新语言,Swift拥有着苹果先天的生态优势,而其在GitHub上各种优秀的开源项目也层出不穷.本文作者@SwiftLanguage从2014年6月苹果发布Swift语言以来,便通过 ...

  6. 困难的串(dfs)

    困难的串 题意: 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的串”.例如,                 BB.ABCDABCD都是容易的串,而D.DC.ABDAD ...

  7. LeetCode : 223. Rectangle Area

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABRQAAAQ0CAYAAAAPPZBqAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVlw

  8. 端口扫描之王-----------nmap

    [root@ok data]# nmap -F -sT -v nmap.org Starting Nmap 5.51 ( http://nmap.org ) at 2016-10-23 12:46 C ...

  9. Jquery.Datatables 导出excel

    按钮(Buttons) BUttons v1.1.2 下载地址:http://pan.baidu.com/s/1c0Jhckg JSZip v2.5.0-21-g4fd4fc1 下载地址:http:/ ...

  10. DOM – (w3school)1.DOM 方法 + 2.DOM属性 + 3.DOM 元素

      1.DOM 方法   一些 DOM 对象方法 这里提供一些您将在本教程中学到的常用方法: 方法 描述 getElementById() 返回带有指定 ID 的元素. getElementsByTa ...