我正在实现一个非常简单的代码片段,用户单击一个按钮,我尝试更改UITextField的框架。我有firstNameTextField的IBOutlet连接。当我用户点击按钮时,我执行以下代码:
self.firstNameTextField.frame = CGRectMake(0, 0, self.firstNameTextField.frame.size.width, self.firstNameTextField.frame.size.height);
请记住firstNameTextField的初始位置是x = 20; y = 96.
如何在运行时更改firstNameTextField框架?
更新:可能是因为我正在使用自动布局,所以我无法更改框架。
谢谢,
答案 0 :(得分:1)
制作translatesAutoresizingMaskIntoConstraints == YES
,
然后拨打self.firstNameTextField.frame = CGRectMake(0, 0, self.firstNameTextField.frame.size.width, self.firstNameTextField.frame.size.height);
它们被转换为可以满足其余约束的约束。
阅读 Adopting Auto Layout 部分了解更多详情
答案 1 :(得分:1)
为要更改的约束添加IBOutlet
个连接,然后您可以更改代码中约束的constant
属性。
另一种解决方案是禁用自动布局,如果你没有做任何特别需要它的事情。但是,如果它正在为你工作,你可能不会想要改变它,以防它确实破坏了,并且它可能更容易实现我的第一个建议。