我试图通过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/

10-14 15:33
查看更多