使用AutoLayout约束, 为啥图片的大小(Image size)却还以实际大小显示?

问题

给一个 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,如若转载,请注明来源。

你可能感兴趣的:(使用AutoLayout约束, 为啥图片的大小(Image size)却还以实际大小显示?)