[英]Swift UIView Constraint Constant Height Changing Time Getting LayoutConstraints Warning
[英]UIView is being moved when changing height constraint on iphone 6/6 plus
我在UIscroll
UIView
里面有一個UILabel
。 UILabel
的文本可以更改,因此我使用此方法來更改其高度約束
func recalculateHeight(){
l_info.sizeToFit();
lc_heightInfo.constant = l_info.frame.height;
}
我在調用self.view.setNeedsLayout();
之后在viewDidLoad()
調用此方法self.view.setNeedsLayout();
和self.view.layoutIfNeeded();
具有正確的寬度,具體取決於用戶使用的iPhone。
在iPhone 4s / 5 / 5s上一切正常,但在iPhone 6/6上嘗試時,視圖會移動。
這就是在iPhone 5s上的外觀: http : //i.imgur.com/sGYzW3l.png
這就是在iPhone 6/6 plus上的外觀: http : //i.imgur.com/qeCL22w.png
我已經搜索了一段時間,沒有發現任何類似的東西。
編輯:
約束如下:
UIScrollView
的頂部和UIImageView
的頂部之間。 值= 0 UIImageView
高度。 價值= 128 UIImageView
的底部和包含UILabel
的頂部UIView
。 價值= 7 UIView
和頂部的UILabel
。 價值= 17 UILabel
高度。 這是我正在改變的約束 UILabel
的底部和UIView
的底部之間。 價值= 17 UIView
的底部和UIScrollView
的底部之間。 價值= 7 編輯2:
我檢查了UIImageView
和UIView
底部之間的約束(編號3),調試器說將其設置為7。我嘗試通過代碼進行設置,但沒有任何反應。
我還進入了視圖調試器,它看起來很完美。
有任何想法嗎? 謝謝!
您的l_info.frame.height
可能在各個設備上保持不變,但標頭l_info.frame.height
的高度會發生變化。
檢查如何設置lc_heightInfo
約束。 它應該設置在(標簽)容器視圖和頂部的imageView之間。 這樣,您的容器視圖將始終與頂部的imageView保持相同的距離。
或者,如果ImageView不是滾動視圖的一部分,則應在容器視圖和滾動視圖的頂部之間設置一個約束,並在scrollView和標題ImageView的頂部之間設置一個約束。 希望這可以幫助 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.