UIView类的回调方法
来源:互联网 发布:批量测试telnet端口 编辑:程序博客网 时间:2024/05/16 10:30
当视图的层级发生变动时, 系统会向相关的视图发送回调(即调用相关视图中的特定的方法). iOS SDK 提供了6个回调方法. Developer可以以此来追踪视图的变动.
1. didAddSubview: 方法
/** Tells the view that a subview was added. @param subview The view that was added as a subview. */ - (void)didAddSubview:(UIView *)subview { NSLog(@"%s", __func__); NSLog(@"subview = %@", subview); }
如果有人通过添加子视图的方法
, 成功地添加了一个子视图, 那么系统会调用该视图上级视图的 didAddSubview 方法. 注意: 仅会调用其直接上级视图中的方法, 并非所有的父视图. Developer可以覆写该方法, 以便在新的子视图添加进来的时候, 做一些自己想做的事情.
添加子视图的方法共有4个:
- addSubview:
- insertSubview: atIndex:
- insertSubview: aboveSubview:
- insertSubview: belowSubview:
2. willRemoveSubview: 方法
某视图将从父视图上移除, 会且仅会调用其直接上级视图的willRemoveSubview:
方法.
/** Tells the view that a subview is about to be removed. @param subview The subview that will be removed. */- (void)willRemoveSubview:(UIView *)subview { NSLog(@"%s", __func__); NSLog(@"subview = %@", subview);}
3. willMoveToSuperview: 方法
/** Tells the view that its superview is about to change to the specified superview. @param newSuperview A view object that will be the new superview of the receiver. This object may be nil. */- (void)willMoveToSuperview:(UIView *)newSuperview { NSLog(@"%s", __func__); NSLog(@"newSuperview = %@", newSuperview);}
- 在子视图将要变更其上级视图, 系统会调用子视图的该方法.
- 无论该视图之前有没有父视图, 即新创建的视图B添加到A视图上, 同样会调用B视图的该方法.
- 将B视图从其父视图A上移除, 同样会调用B视图的该方法, 只是此时, 参数newSuperview为nil.
4. didMoveToSuperview方法
- 此方法没有参数, 有的技术丛书上, 写的是didMoveToSuperview:
, 这是技术性错误. (《iOS核心开发手册》第五版); 其实我很好奇, 为什么苹果在此方法中没有添加newSuperview参数?
- 将新创建的B视图添加到A视图上, 会调用B视图的此方法.
- 将A视图的子视图B, 移动到另一个新视图C上. 会调用B视图的此方法.
5. willMoveToWindow: 方法
在视图即将移动到某个视窗时, 会调用此视图的willMoveToWindow:
方法.
6. didMoveToWindow 方法
- 同
didMoveToSuperview
一样, 此方法同样也没有参数. 其回调机制和didMoveToSuperview
相仿. - 当视图添加或者切换到新的视窗层级(Window hierarchy), 系统会调用视图的此方法.
- 如果想通过airPlayer技术在设备之外的屏幕上显示内容, 一般都需要用到此方法.
Others
这些方法很少会用到,然而一点需要使用,它们总能帮上大忙,因为开发者无需预先知道子视图或者上级视图所属的类,不必导入相关的类的头文件,无需手动建立视图间的关系,在视图实例存在的地方,即可直接在这些方法中拿到子视图和上级视图的实例,直接对子视图和上级视图进行操作,添加新的行为。与Window相关的回调主要用于在另外一个UIWindow中显示某种视图,例如警告视图或是带键盘的输入界面等。
阅读全文
1 0
- UIView类的回调方法
- 关于UIView的回调方法
- ios UIView的回调方法
- UIView的drawRect方法
- UIView的drawRect方法
- UIView的setNeedsDisplay方法
- 移动UIView的方法
- 打印UIView的方法
- Custom UIView 要重定的方法
- UIView设置背景图片的方法
- UIView设置背景图片的方法
- UIView设置背景图片的方法
- UIView设置背景图片的方法
- UIView 中常见的方法
- UIView 设置背景图片的方法
- UIView设置背景图片的方法
- UIView设置背景图片的方法
- UIView设置背景图片的方法
- 广度/宽度优先搜索(BFS)
- crontab定时任务
- APP更快的秘籍
- 轧差
- 7.2-全栈Java笔记:数组常见的操作
- UIView类的回调方法
- nginx 日志配置
- ngx_timeofday,定时器管理
- virtualbox中宿主机如何访问linux虚拟机的python-flask网页
- 看不到git远程分支
- Callback异步回调接口
- EasyUI学习总结(五)——EasyUI组件使用
- Using Ubuntu System
- Android屏幕适配全攻略(最权威的官方适配指导)