我看着http://developer.apple.com/library/ios/#recipes/xcode_help-interface_builder/articles/UnderstandingAutolayout.html,但解釋很模糊。如何讓自動佈局在Xcode中工作
我在iOS 6.我有兩個孩子的意見,一個在另一個頂部視圖控制器:
我想用自動版式建立在這樣的方式的觀點,即如果我以編程方式更改頂視圖的框架,底視圖將調整大小以適應頂視圖的新框架。也就是說,如果我增加頂視圖的高度,底視圖的高度應該增加以保持兩個視圖之間的相同分隔;如果我減少頂視圖的高度,則會發生相反的情況。
默認的限制,我得到在Xcode中這兩種觀點是:
如果我按住Command和調整頂部(圖)來看,底部(的tableview)似乎正確縮小或垂直擴展以履行它們之間的空間約束。
然而,分鐘我嘗試通過代碼修改的頂視圖的框架或邊界內,例如:
self.topView.frame = CGRectMake(0, 0, 320, 514);
仰視圖不收縮。 那麼我錯過了什麼?
好吧,我明白了。我認爲他們是以另一種方式工作的:改變框架引發約束的變化。謝謝!最後一件事,如果你願意,我可以創建一個單獨的問題,但是,我嘗試在'UIView animateWithDuration:...'調用中包裝'NSLayoutConstraint.constant'值更改,希望動畫調整大小,但它沒有動畫。我現在正要直接嘗試CoreAnimation,但想知道如果你知道它甚至有可能嗎? – SaldaVonSchwartz
您需要強制UIKit在動畫塊內執行佈局傳遞。您可以在塊內部執行'[self.topView layoutIfNeeded]',或者如果您將完整的動畫方法與選項一起使用,則可以傳遞'UIViewAnimationOptionLayoutSubviews'標誌。 –
+1提到從xib到代碼的約束映射 – SNR