Ken*_*ent 13 viewdidload ios autolayout
我有一个iOS应用程序,我需要知道什么时候新的视图在屏幕上完全可见; 也就是说,当Autolayout完成计算并且视图已完成绘制时.
在视图完全可见之前,ViewDidAppear似乎很好.如果我关闭Autolayout,时间似乎与人类感知一致,但我需要在这个项目中使用Autolayout(所以这不是一个解决方案......只是一个测试).
当Autolayout完成计算时,是否有任何方法可以触发?或者视图实际可见时触发的另一种方法(因为ViewDidAppear不适用于此)?
谢谢!
Mat*_*att 16
以下内容可用于避免多次调用:
- (void) didFinishAutoLayout {
// Do some stuff here.
NSLog(@"didFinishAutoLayout");
}
Run Code Online (Sandbox Code Playgroud)
和
- (void) viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
[NSObject cancelPreviousPerformRequestsWithTarget:self
selector:@selector(didFinishAutoLayout)
object:nil];
[self performSelector:@selector(didFinishAutoLayout) withObject:nil
afterDelay:0];
}
Run Code Online (Sandbox Code Playgroud)
我为此使用 viewDidLayoutSubviews 。苹果的文档说:“调用通知视图控制器它的视图刚刚布置了它的子视图。”
| 归档时间: |
|
| 查看次数: |
8582 次 |
| 最近记录: |