Ios 添加视图后如何调整uiscrollview(自动布局)
主视图中有一个Ios 添加视图后如何调整uiscrollview(自动布局),ios,user-interface,uiscrollview,autolayout,nslayoutconstraint,Ios,User Interface,Uiscrollview,Autolayout,Nslayoutconstraint,主视图中有一个uicrollview。我在scrollview中有容器UIView,其边缘固定在scrollview上。此容器视图具有恒定的宽度和高度约束。因为没有它们,“滚动视图”无法工作 当我在容器视图中垂直添加许多子视图时,子视图超出了容器视图的底部边界。它不可滚动,因为容器具有相同的预定义高度。 如何使容器视图可调整,使其与子视图高度匹配,从而使其可滚动 也考虑使用 AutoLayOut < P>你需要做的是更新高度约束,对吗? 我会将内部视图的高度约束链接为ViewController
uicrollview
。我在scrollview中有容器UIView
,其边缘固定在scrollview上。此容器视图具有恒定的宽度
和高度
约束。因为没有它们,“滚动视图”无法工作
当我在容器视图中垂直添加许多子视图时,子视图超出了容器视图的底部边界。它不可滚动,因为容器具有相同的预定义高度。
如何使容器视图可调整,使其与子视图高度匹配,从而使其可滚动
也考虑使用<代码> AutoLayOut<<代码> .< /P> < P>你需要做的是更新高度约束,对吗? 我会将内部视图的高度约束链接为ViewController中的IBOutlet:
@property (nonatomic, weak) IBOutlet NSLayoutConstraint *contentViewHeight;
- 通常拖放到文件的所有者
- (void)updateContentViewHeight:(CGFloat)height
{
self.contentViewHeight.constant = height;
[self.yourContentView layoutIfNeeded];
}
如果您可以跟踪整个子视图堆栈的高度,那就太好了!您只需要将其传递给该方法
如果不是,可能会有点棘手。。。您可能需要删除高度约束,将子视图一个一个地添加到另一个子视图下(只要它们的高度固定),同时不要忘记将最后一个子视图的下边框“固定”到“内部视图”的下边框上。
换句话说,内部视图的高度不是固定的,而是通过其“高度固定”内容的总和进行扩展。
在以下情况下,请这样做:
[self.yourContentView layoutIfNeeded];
在“.frame”中应该有它的最终高度
然后,您应该能够更新高度约束或设置scrollview的内容大小,这是最适合您的