【发布时间】:2013-04-07 18:10:04
【问题描述】:
我有一个 UITableView,其中首先是表视图部分,然后是 UIView(绑定到 IBOutlet _myView),里面有一些控件(例如 UITextField,绑定到 IBOutlet _durationField)。所有这些都在情节提要中完成。我想动态移动那个 _durationField,所以我需要修改中心或框架属性。但是,viewDidLoad 中的这段代码返回零值:
CGRect durationRect = _durationField.frame;
而 TableCell 和 _myView 框架属性中的标签返回真实值,例如这不会返回零:
CGRect viewRect = _myView.frame;
此外,更改 _durationField 的 frame 属性不会反映在 UI 中。实际上,我为 _myView 中的所有控件获得了零值,尽管它们在代码中正确绑定到 IBOutlet。此外,我可以在 viewDidLoad 中设置 _durationField.text 并且效果很好。
有什么想法吗?看起来我错过了一些简单的东西。
viewWillLayoutSubviews 的第一个建议解决方案确实允许移动元素,但只能在呈现视图之后。所以用户可以看到它是如何移动的。这不是一个理想的行为。我想在呈现视图之前动态移动元素。
【问题讨论】:
标签: objective-c uitableview frame