Ios 在iphone 6/6 plus上更改高度约束时,UIView正在移动
我有一个Ios 在iphone 6/6 plus上更改高度约束时,UIView正在移动,ios,swift,autolayout,iphone-6,iphone-6-plus,Ios,Swift,Autolayout,Iphone 6,Iphone 6 Plus,我有一个UILabel内部UIView内部UIscroll。UILabel中的文本可以更改,因此我使用此方法来更改其高度约束 func recalculateHeight(){ l_info.sizeToFit(); lc_heightInfo.constant = l_info.frame.height; } 调用self.view.setNeedsLayout()之后,我在viewDidLoad()中调用了这个方法和self.view.layoutifneed()根据用户的
UILabel
内部UIView
内部UIscroll
。UILabel
中的文本可以更改,因此我使用此方法来更改其高度约束
func recalculateHeight(){
l_info.sizeToFit();
lc_heightInfo.constant = l_info.frame.height;
}
调用self.view.setNeedsLayout()之后,我在viewDidLoad()中调用了这个方法
和self.view.layoutifneed()
根据用户的iPhone设置正确的宽度
在iPhone4S/5/5s上一切都很完美,但在iPhone6/6 plus上试用时,视图会被移动
这是iPhone 5s上的外观:
这就是它在iPhone 6/6 plus上的外观:
我搜索这个已经有一段时间了,没有发现任何类似的东西
编辑:
限制条件如下:
在UIScrollView
的顶部和UIImageView
的顶部之间值=0
ui图像视图的高度
值=128
在UIImageView
的底部和包含UILabel
的顶部UIView
之间值=7
在顶部ui视图
和ui标签顶部
之间值=17
ui标签的高度
这是我正在更改的约束
在ui标签的底部
和ui视图的底部
之间值=17
在UIView
的底部和UIScrollView
的底部之间值=7
编辑2:
我检查了UIImageView
底部和UIView
(数字3)之间的约束,调试器说它被设置为7。我试着从代码设置它,但什么也没发生
我也进入了观景台,那里看起来很完美
有什么想法吗?
谢谢 可能您的l_info.frame.height
在所有设备上都保持不变,但标题imageView高度会发生变化
检查如何设置lc\u heightInfo
约束。它应该设置在(标签)容器视图和顶部的imageView之间。这样,您的容器视图将始终与顶部的imageView保持相同的距离
或者,如果该图像视图不是滚动视图的一部分,则应在容器视图和滚动视图顶部之间设置一个约束,并为滚动视图顶部和标题图像视图设置一个约束。希望这有帮助:)图像视图是scrollview的一部分。我将编辑帖子并放置设置的约束。