2014-10-28 64 views
1

UIView中有一个UIScrollView。我有容器UIView滚动视图内,其边缘固定为滚动视图。并且此容器视图具有恒定的宽度和高度限制。因为没有它们,滚动视图不起作用。如何在添加视图(自动布局)后调整uiscrollview

当我在容器视图中垂直添加很多子视图时,子视图超出容器视图的底部边界。它不可滚动,因为容器具有相同的预定义高度。 如何使容器视图可调整,以便它可以匹配将使其可滚动的子视图高度。

还要考虑我正在使用自动布局。

回答

1

你实际上需要做的是更新高度约束,对吧?

我会在你的ViewController链接你的内观的高度约束作为一个IBOutlet:

@property (nonatomic, weak)  IBOutlet NSLayoutConstraint *contentViewHeight; 
  • 通常拖放到文件的所有者

然后你需要当您添加子视图时,请使用该方法的调用更新您的约束的常量:

- (void)updateContentViewHeight:(CGFloat)height 
{ 
    self.contentViewHeight.constant = height; 
    [self.yourContentView layoutIfNeeded]; 
} 

如果您可以跟踪整个子视图堆栈的高度,太棒了!你只需要将它传递给该方法。

如果不是,可能会有点棘手......您可能需要删除高度约束,将您的子视图添加到彼此下面(只要其高度固定),而不会忘记“钉住”底部最后一个子视图的边框到“内部视图”的底部边框。 换句话说,内部视图的高度不是固定的,而是通过其“高度固定”内容的总和来扩展。 这种方式后:

[self.yourContentView layoutIfNeeded]; 

它应该有它在它的“.frame”

最终身高然后,您应该能够更新的高度约束或设置了滚动的内容大小,什么都工作最适合你。

+0

ok更新高度限制工作 – vsl 2014-10-30 05:19:31

相关问题