[英]How to adjust uiscrollview after adding view (autolayout)
主UIView
有一個UIScrollView
。 我在scrollview內部有容器UIView
,其邊緣固定在scrollview上。 並且此容器視圖具有恆定的width
和height
約束。 因為沒有它們,滾動視圖就無法工作。
當我在容器視圖內垂直添加許多子視圖時,這些子視圖超出了容器視圖的底部邊界。 無法滾動,因為容器具有相同的預定義高度。 如何使容器視圖可調,使其可以匹配子視圖的高度,從而使其可滾動。
還要考慮我正在使用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.