问题
给一个 UIImageView 设置一张图片时,使用 AutoLayout 给 UIImageView 约束宽高,但是实际显示的大小,图片以实际的大小显示出来,代码也没有设置 frame,设置contentMode为UIViewContentModeScaleAspectFit 也不起作用。
原因
最后注册到约束时,设置了 @property NSLayoutPriority priority;
,就是设置了线束的优先级为UILayoutPriorityDefaultHigh
,导致这个约束级别比图片默认显示的大小的优先级低。
解决方法
如果开始一定要给一个低级的约束,那么要以约束大小显示时,在重新添加一个相同大小约束的UILayoutPriorityRequired
,这样就会覆盖低优先级的约束,图片大小就不会超级约束范围。
参考
- Hello World
- ios - With Auto Layout, how do I make a UIImageView's size dynamic depending on the image? - Stack Overflow
注:本文首发于 iHTCboy's blog,如若转载,请注明来源。