0

UIImageViewcontentMode = UIViewContentModeScaleAspectFit

我需要这种模式才能正确显示我的图像。但我也需要 imageView 裁剪图像,当它的框架像 UIViewContentModeTopLeft.

我怎样才能得到这个?

编辑:

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我得到了缩放图像

4

1 回答 1

1

在没有大量额外工作的情况下,您无法在您尝试的方法中真正从该 imageView 中获得您想要的东西。当您调整视图大小时,您会看到缩放,这就是您设置的模式,这就是真正会发生的一切。有许多可能性,其中许多涉及通过子类化自己调整大小。但至于解决方案:

  1. 在运行之前调整您的艺术,然后您不需要为每个用户和每次运行的每个显示的这些星星进行缩放。拯救电子!
  2. 将 imageView 作为子视图添加到您将与 imageView 的缩放大小匹配的其他容器视图,然后调整大小以剪辑您不想显示的 imageView 部分。
于 2013-03-13T14:07:33.017 回答