iphone - 在加载 View 中创建 View 并设置它的框架,但框架自动更改

标签 iphone ios uiview

为什么 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/

相关文章:

iphone - 如何更改 TableViewController 的类?

ios - WkWebView如何管理输入类型文件启动的事件和窗口

ios - IOS设备一次可以存储多少个指纹?

ios - 从 Bluez 5.48 开始,iPhone 在连接 BLE GAP 外设时需要配对,为什么?

ios - 在 UIView 中使用 UIImagePickerController

iphone - ${EXECUTABLE_NAME} 和 ${PRODUCT_NAME} 在哪里定义

iphone - 如何从UIAlertView更改键盘颜色

iphone - 当用户点击 "sign out button"时如何重置 iOS 应用程序?

ios - 更改navigationController的背景颜色时,为什么状态栏(尽管设置为“黑色不透明”)会变成灰色?

ios - 我希望我的 View Controller 具有相同的自定义 UIView 组合,它们可以相互通信