【问题标题】:UIImageView overflowing its containing UIView after calling sizeToFitUIImageView 在调用 sizeToFit 后溢出其包含的 UIView
【发布时间】:2012-08-07 14:23:51
【问题描述】:

我的UIView(宽度:352px)有一个UIImageView 子视图(Storyboard 中的默认宽度:312px)。
我希望UIImageView 能够适应它包含的图像的尺寸,并限制图像视图的宽度不应超过最大宽度大小(在我的情况下为 312 像素)。
我将UIImageView 的“自动调整大小”配置设置为具有固定的左侧、顶部和右侧边距大小。然而,当我在 UIImageView 上调用 sizeToFit 并且它的图像大于 352 像素时,UIImageView 变得比它包含的 UIView 更宽。
有没有一种方便的方法来防止这种行为,而无需根据图像尺寸进行数学计算?我是否以正确的方式使用sizeToFit

【问题讨论】:

  • 你试过aspect fit吗? (UIViewContentModeScaleAspectFit)。
  • @ohr:是的,我有 - 相同的行为
  • @Rick:你提到的链接说你应该手动计算,我已经知道这是一个选项。我想知道为什么 sizeToFit 无能为力:是我没有正确使用它还是它不是实现目标的正确方法?

标签: ios uiview uiimageview sizetofit


【解决方案1】:

只需使用 setClipsToBounds:

[imageView setClipsToBounds:YES];

【讨论】:

  • 谢谢,但那会剪辑图像。那不是我想要的。 :)
  • 如果你使用sizeToFit,ImageView会长大以适应图像,你可以设置这个属性:[imageView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];并评论这一行 [imageView setContentMode:UIViewContentModeScaleAspectFit];工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-16
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-18
  • 2013-10-21
相关资源
最近更新 更多