如何在添加视图(自动布局)后调整uiscrollview
问题描述:
UIView中有一个UIScrollView。我有容器UIView滚动视图内,其边缘固定为滚动视图。并且此容器视图具有恒定的宽度和高度限制。因为没有它们,滚动视图不起作用。如何在添加视图(自动布局)后调整uiscrollview
当我在容器视图中垂直添加很多子视图时,子视图超出容器视图的底部边界。它不可滚动,因为容器具有相同的预定义高度。 如何使容器视图可调整,以便它可以匹配将使其可滚动的子视图高度。
还要考虑我正在使用自动布局。
答
你实际上需要做的是更新高度约束,对吧?
我会在你的ViewController链接你的内观的高度约束作为一个IBOutlet:
@property (nonatomic, weak) IBOutlet NSLayoutConstraint *contentViewHeight;
- 通常拖放到文件的所有者
然后你需要当您添加子视图时,请使用该方法的调用更新您的约束的常量:
- (void)updateContentViewHeight:(CGFloat)height
{
self.contentViewHeight.constant = height;
[self.yourContentView layoutIfNeeded];
}
如果您可以跟踪整个子视图堆栈的高度,太棒了!你只需要将它传递给该方法。
如果不是,可能会有点棘手......您可能需要删除高度约束,将您的子视图添加到彼此下面(只要其高度固定),而不会忘记“钉住”底部最后一个子视图的边框到“内部视图”的底部边框。 换句话说,内部视图的高度不是固定的,而是通过其“高度固定”内容的总和来扩展。 这种方式后:
[self.yourContentView layoutIfNeeded];
它应该有它在它的“.frame”
最终身高然后,您应该能够更新的高度约束或设置了滚动的内容大小,什么都工作最适合你。
ok更新高度限制工作 – vsl 2014-10-30 05:19:31