如何正确删除子视图

时间:2015-01-22 20:45:34

标签: ios objective-c uiscrollview autolayout size-classes

我有一个包含5个子视图的简单滚动视图。我的结构看起来像这样:

enter image description here

我使用大小类来按照我想要的方式布置所有内容,而且效果很好。在底部,有一个webview,用于在我使用youtube链接收到JSON时。不幸的是,并不总是有YouTube视频,当发生这种情况时,我会留下视频所在的空白区域。

我希望在图像视图和Web视图之间的标签位于底部,而不包含webview所在的空白区域。

我尝试在没有YouTube视频时从滚动视图中删除webview,但这似乎会锁定滚动。我也尝试将webview的框架设置为0,但空白区域仍然存在。以下是我的网页视图的限制。

enter image description here

如果没有要播放的视频,我应该如何处理额外空间?

1 个答案:

答案 0 :(得分:0)

您正在使用自动布局结构,因此在更新UI时您必须更新约束: 所以附加所需的限制与出口:

IBOutlet NSLayoutConstraint *_leadingSpaceConstraint;
IBOutlet NSLayoutConstraint *_topSpaceConstraint;
IBOutlet NSLayoutConstraint *_buttomSpaceConstraint; 
...

当需要更新UI更改约束值时:

_leadingSpaceConstraint = x;
_topSpaceConstraint = y;
_buttomSpaceConstraint = z
...

然后致电:[self.view layoutIfNeeded];