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

时间: 2024-10-10 11:01:19

iOS10 UI教程层次结构的事件的相关文章

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

iOS10 UI教程子视图和父视图UI层次结构和Views继承 iOS10 UI教程子视图和父视图UI层次结构和Views继承,本节将讲解与UI层次结构和Views继承相关的内容,其中包括子视图和父视图.管理层次结构.视图和子视图的可见性.层次结构的事件等内容. 子视图和父视图 每一个UIView(或者是子类)的实例都可以与其它的视图使用父-子关系的方式进行连接.其中父视图被称为superview(超视图),孩子视图被称为subviews(子视图).一个视图可以有且仅有一个父视图,但是可以有多个

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

iOS10 UI教程视图和子视图的可见性 iOS10 UI教程视图和子视图的可见性,一个父视图可以通过clipsToBounds属性,定义子视图在边界(边界就是父视图的框架也就是父视图可以显示的范围)以外部分的可见性.其语法形式如下: var clipsToBounds: Bool { get set } 其中,将此属性设置为true,视图将掩盖它的子视图,防止这些子视图被显示在边界之外,如图1.17所示.   图1.17  可见性 [示例1-8:clipsToBounds]以下将使用clips

iOS10 UI教程禁用视图与用户的交互

iOS10 UI教程禁用视图与用户的交互 在上文中我们提到了使用isHidden属性和alpha属性可以使视图与用户的交互被禁用,除此之外此功能还可以使用UIView的isUserInteractionEnabled属性实现,其语法形式如下: var isUserInteractionEnabled: Bool { get set } 此属性可以接收一个布尔值,当接收的布尔值为false时,视图与用户的交互就会被禁用. [示例1-2:isUserInteractionEnabled]以下将禁用文

iOS10 UI教程视图的几何形状

iOS10 UI教程视图的几何形状 视图属性中的一部分属性可以让定义的视图绘制在屏幕上.在讲解这些属性前,我们首先将讲解,定义视图的几何形状所涉及到的结构类型.这些结构类型如下: CGPoint:它表示一个二维坐标系中的点,由x和y两个属性进行定义. CGSize:它表示一个矩形的尺寸,由width和height两个进行定义. CGRect:它表示一个矩形的位置和大小,由origin和size两个属性进行定义. 注意:初始化这些结构类型所需要的代码非常简单,而且有很多功能都是通过Apple提供的

黑马程序员:赶紧下载iOS10开发教程第二弹

虽然6月13日WWDC2016的发布会结束了,但是本届大会的开发者session环节还在持续进行着.黑马程序员本着对技术的狂热,对学生负责的态度,仍然坚持每天对课程进行深入的研发.本文主要是黑马程序员对iOS 10 中SDK所更新的主要内容进行总结.根据黑马程序员惯例,在文章的最后,有相关相关教学视频及Demo会有分享链接,供各位下载! 1.Grand Center Dispatch GCD 在本次一更新主要有以下内容: ?创建私有队列 ?安排异步执行的工作项目(items) ?GCD能自动将工

【jquery基础教程】jquery事件及操作大汇总

在学习Javascript语言中,有一个优秀的Javascript库是大家都会遇到的--jquery,今天小编汇总了jquery事件及操作,现在一起来看看jquery基础教程吧! 事件 bind()        向匹配元素附加一个或更多事件处理器 blur( )        触发.或将函数绑定到指定元素的 blur 事件 change()        触发.或将函数绑定到指定元素的 change 事件 click()        触发.或将函数绑定到指定元素的 click 事件 dblc

jQuery UI 教程

jQuery UI 教程 jQuery UI 是建立在 jQuery JavaScript库上的一组用户界面交互.特效.小部件及主题.无论您是创建高度交互的 Web 应用程序还是仅仅向窗体控件添加一个日期选择器,jQuery UI 都是一个完美的选择.jQuery UI 包含了许多维持状态的小部件(Widget),因此,它与典型的 jQuery 插件使用模式略有不同.所有的 jQuery UI 小部件(Widget)使用相同的模式,所以,只要您学会使用其中一个,您就知道如何使用其他的小部件(Wi

element ui 对话框el-dialog关闭事件( &#215;号 )

element ui 对话框el-dialog关闭事件( ×号 ) 通常会有需求点击叉号清空数据但是elementUI中叉号只是一个关闭的作用,怎么解决呢? <el-dialog title="团课课时编辑" :visible.sync="editLeagueClassFlaga" @close="closeDialog"> </el-dialog> closeDialog(){ this.xxx = '';//清空数据

Vue框架Element UI教程(二)

原文:https://www.jianshu.com/p/1704b5935a8 [时间选择器] Element UI手册:https://cloud.tencent.com/developer/doc/1270 中文文档:http://element-cn.eleme.io/#/zh-CN github地址:https://github.com/ElemeFE/element 前一篇已经安装好了Element UI环境,现在开始来实际操作框架提供的一些组件的运用了. 在准备好以下文章里面的内容