iOS 7中的frame-property存在问题。
我想在我viewDidLoad
的{{1}} - 方法中调整一些UIViews的大小,但如果我这样做UIViewController
高度设置为我希望它直到方法结束,但在其他所有方法中它都是以前一样!
它有什么问题,还是仅仅是编译器或其他任何错误?
答案 0 :(得分:71)
必须将视图大小调整到-viewDidLayoutSubviews:
! (documentation)
将视图框更改放入-viewWillAppear:
或-viewDidLoad:
将无效,因为视图尚未布局!
答案 1 :(得分:11)
检查您是否在xib文件中使用autolayout
。如果您不想使用autolayout
,请在您的xib文件中取消选中它。
更改self.leftSideTableView
中的-viewWillAppear:
框架。
答案 2 :(得分:7)
检查以确保故事板文件中未激活自动布局。
要将其关闭,请查看界面构建器中的检查器。单击左侧看起来像页面的图标。在“Interface Builder Document”部分中,取消选中“Use Auto Layout”。
我发现IB中的整个视图控制器最好使用自动布局,或完全使用代码。混合这两者可能会导致难以调试的奇怪行为。
答案 3 :(得分:1)
有几个原因导致这种情况发生。首先,您需要确保您的tableview不是零。如果您以编程方式创建它,则需要确保在尝试设置帧之前在某处调用alloc / init。如果self.leftSideTableView
是IBOutlet,这可能是由于忘记将插座实际链接到接口对象而引起的。
然后,第二个也不太可能,您正在以编程方式创建表格视图并正确初始化它,但您忘记将其添加为您的某个屏幕视图的子视图。