2014-10-28 117 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

相關問題