使用故事板我添加了一個高度爲5px的UIView。停止調整我的視圖的自動佈局
在運行時,該視圖的高度增加(可能高達25px)。
當方向改變時,視圖的高度恢復爲原來的5px。
我該如何預防?我希望高度保持在方向改變之前的任何位置。
當然,我可以檢測方向變化,然後將其改回,但看起來很sl because,因爲它會收縮然後立即增加。
編輯:這可能是也可能不是自動佈局問題。或者可能只是故事板的默認行爲。
使用故事板我添加了一個高度爲5px的UIView。停止調整我的視圖的自動佈局
在運行時,該視圖的高度增加(可能高達25px)。
當方向改變時,視圖的高度恢復爲原來的5px。
我該如何預防?我希望高度保持在方向改變之前的任何位置。
當然,我可以檢測方向變化,然後將其改回,但看起來很sl because,因爲它會收縮然後立即增加。
編輯:這可能是也可能不是自動佈局問題。或者可能只是故事板的默認行爲。
添加約束固定高度,您可能還需要刪除約束。如果您顯示代碼或解釋您如何設置常量,可以給出更詳細的答案。
其他答案是刪除伸展視圖的大小的約束,可能是你有衝突的約束。
還有一個答案可能是您需要調整其他約束的優先級,也許一個用於間隔視圖之間的優先級。再次更詳細=更好的答案。
不知道,如果它是一個自動佈局問題。我回答了我自己的問題。感謝您的幫助 – MobileMon
重寫-layoutSubviews
是不正確的做法。如果您使用自動佈局,您應該通過編程修改其約束來調整視圖的高度。
讓您的視圖的高度約束屬性:
@property (strong, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint;
我把IBOutlet
那裏,因爲你說你在故事板製作的約束。只需將高度約束拖動到該屬性即可進行連接。 (你也可以創建程序的約束,在這種情況下,你不會用IBOutlet
。)
然後,每當你想改變高度:
self.heightConstraint.constant = 25;
你爲什麼不取消自動佈局? –
因爲我使用自動佈局的其他東西 – MobileMon
冷靜的大寫字母。 – jbouaziz