为什么 View 的框架自动改变了?
查看这段代码:
- (void)loadView{
UIScrollView *sv = [[UIScrollView alloc] initWithFrame:CGRectMake(-10,0,340,480)];
self.view = sv;
NSLog(@"sv frame = %@", NSStringFromCGRect(self.view))
}
- (void)viewWillAppear{
NSLog(@"view frame = %@", NSStringFromCGRect(self.view));
}
在我的演示中 输出 : sv 帧 = {{-10, 0}, {340, 480}}
View 框架 = {{0, 0}, {320, 480}}
应该是:view frame = {{-10, 0}, {340, 480}}
但在 PhotoScroller 演示 (2010 WWDC 104) 中,它是正确的。太奇怪了。
最佳答案
以这种方式更改这两种方法:
- (void)loadView{
UIScrollView *sv = [[UIScrollView alloc] initWithFrame:CGRectZero];
self.view = sv;
}
- (void)viewWillAppear:(BOOL)animated {
self.view.frame = CGRectMake(-10,0,340,480);
}
编辑:必须至少在 viewWillAppear:
和以后的 UIViewController
事件生命周期中设置几何。自动调整蒙版大小也可以更改几何形状。
关于iphone - 在加载 View 中创建 View 并设置它的框架,但框架自动更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11305818/