ios UIView的回调方法

来源:互联网 发布:温十如何解除网络禁用 编辑:程序博客网 时间:2024/05/18 03:41

当视图层级有变化时,系统可以向相关视图发送回调。iOS SDK提供了留个回调的方法,应用程序可以通过这些方法来追踪视图的移动以及上层视图的变动:

1、didAddSubview:如果有人通过addSubview:方法或者是UIView提供的几个插入方法成功的向某个视图添加了一个子视图,那么系统就会在上级视图上面调用这个方法。我们可以在UIView的子类里复写这个方法,以便在新的子视图添加进来的时候,执行一些额外的操作。

2、didMoveToSuperview:如果有人已经把某个子视图移动到另一个新的上级视图名下,那么系统就会在子视图上调用这个方法。此时子视图可以用某种方式来响应新的上级视图,如果开发者把子视图从其上级视图中移除,那么系统也会调用这个方法,只不过此时子视图的superview是nil。

3、willMoveToSuperview:在子视图即将变更其上级视图时,系统会调用这个方法。视图移动到新的视窗层级而不是仅仅改换其上级

4、didMoveToWindow:它的回调时机和didMoveToSuperview:它的回调时机和didMoveToSuperview相仿,但只有当视图移动到新的视窗层级而不是仅仅改换其上级视图时系统才会调用它,如果想通过AirPlay技术在设备之外的屏幕上显示内容,那么一般都要用到这个方法。

5、willMoveToWindow:在子视图即将移动到别的视窗层级时,系统会调用这个方法。

6、willRemoveSubview:如果某个子视图即将从其上级视图中移除,那么系统会在上级视图上调用这个方法。

这些方法很少会用到,然而一旦需要用到,他们就总能帮上大忙,因为开发者无需预先知道子视图或者上级视图所属的类,即可为视图添加新的行为。与Window有关的回调主要用于在另一个UIWindow中显示某种视图。

0 0
原创粉丝点击