2013-12-18 85 views
1

view controller with constraints增加圖高度,滾動型這裏使用自動佈局

所有視圖(除導航欄)是一個滾動視圖。所有滾動視圖的子項都有固定的高度和垂直間距。頂部標籤(感謝您使用...)和底部按鈕(切換)分別垂直固定在頂部和底部的滾動視圖。底部按鈕也固定在底部佈局指南上。

我要上紅色視圖靈活的高度。紅色視圖是唯一具有不等式約束的視圖。高度> = 64

柔性高度是工作在所述紅色視圖的高度自動擴展到152以填充於4「」設備的額外的空間。

不過,我想更擴大的高度。在代碼中,我想擴大紅色視圖的高度,比如說,當有人點擊切換按鈕時,該高度爲300。

- (IBAction)toggle:(id)sender 
{ 
    [self.scrollView layoutIfNeeded]; 
    [UIView animateWithDuration:1.0 animations:^{ 
     self.constraint.constant = 300; 
     [self.scrollView layoutIfNeeded]; 
    }]; 
} 

當我這樣做,我在控制檯中出現錯誤。 「無法同時滿足約束條件。」與「將嘗試打破約束,以恢復」和它打破我剛纔設置的300

所以高度約束結束....我怎麼設置紅色視線的高度來像大300?我認爲如果我更新它的高度限制,scrollView的contentSize會自動調整,但似乎沒有發生。

回答

1

你正確設置代碼約束的高度。但是,您的佈局需要進行一些調整才能使其正常工作。

它看起來就像是增加了子視圖滾動視圖本身。相反,您需要將內容視圖添加到滾動視圖,然後將子視圖添加到內容視圖。

有關如何使用自動佈局與UIScrollView,看看蘋果公司的技術說明詳細信息:developer iOS technotes

你的具體情況,我會使用蘋果的所謂的「混合模式」。在這種方法中,您直接設置內容視圖的框架和滾動視圖的內容大小。計算高度將是一個痛苦。這包括計算每個子視圖的高度加上邊距和間距。