我试图通过removeFromSuperview删除约束,以使UILabel增长。文本字段1被删除。但是它仍然不能让UILabel的宽度增加。我已附上示例代码here以供参考。它完全在故事板上。
这是我的ViewDidLoad方法:
self.label1.text = @"label 1";
self.label2.text = @"label 2";
self.textfield1.text = @"text field 1";
self.textfield2.text = @"text field 2";
[self.textfield1 removeFromSuperview];
我不想拥有约束的IBOutlet并在代码上对其进行更新。我正在尝试一次将它放在情节提要上。
最佳答案
我认为您的标签2取决于它在文本字段1中的位置,并且您希望标签2在删除文本字段1时增长到占据文本字段1的空间。但是,由于标签2位于(例如,文本字段的右边20个像素1),当您删除文本字段1时,该约束将被删除(由于文本字段1不再存在,它现在无效!),并且相对于父视图生成一个默认约束。
有一个简单的解决方案,但它并不完美-与其从 super 视图中删除,而不是将文本字段1的宽度设置为0。然后,您将看到标签2位置的变化。
但是,为了获得更多控制,我认为您仍然必须IBOutlet
约束。
关于ios - 从 super View 中自动删除布局不会更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30537054/