Ios 在运行时更改UIView框架

Ios 在运行时更改UIView框架,ios,Ios,我正在实现一段非常简单的代码,其中用户单击一个按钮,我尝试更改UITextField的框架。我有一个firstNameTextField的IBOutlet连接。当我用户单击按钮时,我执行以下代码: self.firstNameTextField.frame = CGRectMake(0, 0, self.firstNameTextField.frame.size.width, self.firstNameTextField.frame.size.height); 记住firstNameText

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

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


谢谢,

制作
翻译自动调整大小GMaskintoConstraints==是

然后调用self.firstNameTextField.frame=CGRectMake(0,0,self.firstNameTextField.frame.size.width,self.firstNameTextField.frame.size.height)

它们被转换为可以满足其余约束的约束


阅读部分了解更多详细信息为要更改的约束添加
IBOutlet
连接,然后可以更改代码中约束的
常量属性


另一个解决方案是禁用自动布局,如果您没有做任何特别需要的事情。但如果它在运行时对您有效,您可能不想更改它,以防它确实损坏了某些东西,并且可能更容易实现我的第一个建议。

问题是…@johndoe John,您在发布之前是否校对过它?这根本没有道理。问题中的代码已经“在运行时更改帧”。@H2CO3请阅读问题!!它清楚地表明,即使我正在更改帧,它也不起作用。@H2CO3感谢上帝,我以为我是唯一一个…你验证了
self.firstNameTextField
不是
nil
?我只是这样做了,它不起作用!似乎没有发生任何更改。有关更多详细信息,请阅读“采用自动布局”部分,,,我已在答案中包含该链接。谢谢!但这也不管用!当我改变约束时,它会把一切都搞砸!我很惊讶,一个简单的事情改变框架是如此困难的自动布局。你尝试改变了哪些约束条件,它到底把什么搞砸了?