繁体   English   中英

当contentMode UIViewContentModeScaleAspectFit时,禁用UIImageView调整大小的行为

[英]Disable UIImageView resizing behavior when contentMode UIViewContentModeScaleAspectFit

我有UIImageViewcontentMode = UIViewContentModeScaleAspectFit

我需要此模式才能正确显示我的图像。 但是当帧改变时,像 UIViewContentModeTopLeft 一样,我也需要imageView裁剪图像

我怎么能得到这个?

编辑:

imageView.contentMode = UIViewContentModeTopLeft;
imageView.image = someImage;

现在我得到了(没关系,图像正确缩放并且看起来不错):

在此处输入图片说明

然后,我有方法:

- (void)setRating:(double)rating {
      double starWidth = imageView.image.size.width / _maxRating;
      CGRect oldFrame = self.frame;
      imageView.frame = CGRectMake(0, 0, rating * starWidth, oldFrame.size.height);
      _rating = rating;
}

在此方法之后,我需要得到类似的东西:

在此处输入图片说明

但是由于UIViewContentModeScaleAspectFit我得到了缩放图像

如果没有很多额外的工作,就无法以尝试的方法真正从imageView中获得所需的内容。 调整视图大小时,您会看到缩放比例,即您设置的模式,这就是所有可能发生的事情。 有很多可能性,其中很多涉及通过子类化来调整大小。 但至于解决方案:

  1. 在运行时之前调整艺术作品的大小,然后无需为每个用户和每次运行的那些星星的每次显示进行缩放。 节省电子!
  2. 将imageView作为子视图添加到其他容器视图中,您将使其与imageView的缩放大小匹配,然后调整大小以裁剪不希望显示的imageView部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM