簡體   English   中英

添加視圖后如何調整uiscrollview(自動布局)

[英]How to adjust uiscrollview after adding view (autolayout)

UIView有一個UIScrollView 我在scrollview內部有容器UIView ,其邊緣固定在scrollview上。 並且此容器視圖具有恆定的widthheight約束。 因為沒有它們,滾動視圖就無法工作。

當我在容器視圖內垂直添加許多子視圖時,這些子視圖超出了容器視圖的底部邊界。 無法滾動,因為容器具有相同的預定義高度。 如何使容器視圖可調,使其可以匹配子視圖的高度,從而使其可滾動。

還要考慮我正在使用autolayout

您實際需要做的是更新“高度”約束,對嗎?

我將您的內部視圖的Height Constraint鏈接為ViewController中的IBOutlet:

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

然后,當您在其中添加子視圖時,需要使用該方法的調用來更新約束的常量:

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

如果您可以跟蹤整個子視圖堆棧的高度,那就太好了! 您只需要將其傳遞給該方法即可。

如果沒有,那可能會更棘手...您可能需要刪除“高度限制”,將子視圖彼此上下添加(只要它們的高度固定),而不必忘記“固定”最后一個的底部邊框子視圖到“內部視圖”的底部邊框。 換句話說,內部視圖的高度不是固定的,而是由其“高度固定”內容的總和擴展。 之后的方式:

[self.yourContentView layoutIfNeeded]; 

它的“ .frame”中應該有最終的高度

然后,您應該能夠更新“高度限制”或設置滾動視圖的內容大小,最適合您的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM