我在我的应用程序中发现了一个奇怪的行为,在我的视图控制器对 viewWillAppear:
和 viewDidAppear:
的调用之间,一个已连接的 IBOutlet
具有其已连接的视图帧。下面是我的 UIViewController
子类中的相关代码:
-(void)viewWillAppear:(BOOL)animated {
NSLog(@"%@", self.scrollView);
}
-(void)viewDidAppear:(BOOL)animated {
NSLog(@"%@", self.scrollView);
}
以及由此产生的日志输出:
MyApp[61880:c07] <UIScrollView: 0x1057eff0; frame = (0 0; 0 0); clipsToBounds = YES; autoresize = TM+BM; gestureRecognizers = <NSArray: 0x10580100>; layer = <CALayer: 0x1057f210>; contentOffset: {0, 0}>
MyApp[61880:c07] <UIScrollView: 0x1057eff0; frame = (0 44; 320 416); clipsToBounds = YES; autoresize = TM+BM; gestureRecognizers = <NSArray: 0x10580100>; layer = <CALayer: 0x1057f210>; contentOffset: {0, 0}>
这清楚地显示了帧在两个调用之间的变化。我想在 viewDidLoad
方法中使用视图进行设置,但是如果内容在出现在屏幕上之前不能进行更改,那似乎就没有什么用处了。会发生什么事?