在运行时更改UIView框架

时间:2014-01-15 18:45:34

标签: ios

我正在实现一个非常简单的代码片段,用户单击一个按钮,我尝试更改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框架?

更新:可能是因为我正在使用自动布局,所以我无法更改框架。

谢谢,

2 个答案:

答案 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属性。

另一种解决方案是禁用自动布局,如果你没有做任何特别需要它的事情。但是,如果它正在为你工作,你可能不会想要改变它,以防它确实破坏了,并且它可能更容易实现我的第一个建议。