2013-03-13 64 views
0

UIImageViewcontentMode = UIViewContentModeScaleAspectFit当contentMode UIViewContentModeScaleAspectFit

禁用的UIImageView调整行为,我需要这个模式才能正常显示我的形象。 但我也需要imageView裁剪图像时,其框架更改像UIViewContentModeTopLeft

我怎么能得到这个?

编辑:

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

现在我得到这个(和它的确定,图像缩放正确,看起来不错):

enter image description here

然后,我有方法:

- (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; 
} 

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

enter image description here

但由于UIViewContentModeScaleAspectFit我得到缩放后的图像

+0

发表一些代码:) – Rushabh 2013-03-13 12:55:40

+0

你想得到什么? – 08442 2013-03-13 12:56:27

+0

编辑。希望它会给一些清晰度 – user1248568 2013-03-13 13:35:17

回答

0

你真的不能让你从你正在尝试没有很多额外的工作方法是ImageView的想要的东西。当您调整视图大小时,您会看到缩放比例,这就是您设置的模式,这就是所有会发生的情况。 有许多可能性,其中许多涉及通过子类别自行调整事物大小。但是至于解决方案:

  1. 在运行时间之前对您的作品进行尺寸调整,然后您不需要为每个用户和每次运行的每个显示星号进行缩放。拯救电子!
  2. 将imageView作为子视图添加到某个其他容器视图,您将匹配到imageView的缩放大小,然后调整大小以剪裁不想显示的imageView部分。
+0

使用了第二种解决方案。非常感谢 :) – user1248568 2013-03-13 15:09:45

相关问题