【发布时间】:2015-08-05 21:26:25
【问题描述】:
我在UIView 里面有一个UILabel 在一个UIscroll 里面。 UILabel 中的文字可以改变,所以我用这个方法来改变它的高度约束
func recalculateHeight(){
l_info.sizeToFit();
lc_heightInfo.constant = l_info.frame.height;
}
我在调用self.view.setNeedsLayout(); 和self.view.layoutIfNeeded(); 之后在viewDidLoad() 中调用此方法以根据用户的iPhone 获得正确的宽度。
在 iPhone 4s/5/5s 上一切正常,但在 iPhone 6/6 plus 上尝试时,视图被移动了。
这是它在 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。我尝试从代码中设置它,但没有任何反应。
我还进入了视图调试器,它看起来很完美。
有什么想法吗? 谢谢!
【问题讨论】:
标签: ios swift autolayout iphone-6 iphone-6-plus