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