2013-05-07 91 views
0

我有这个UIImageview,与图像。这是一个小图像,与平铺的使用CGAffineTransformMakeScale时图像缩放

resizableImageWithCapInsets 

方法。如果以编程方式更改UIImageview的帧大小,内部图像不会被拉伸,而是被重复,所以像素保持像素,这对于执行与屏幕大小无关的图像非常有用。

现在,当我做了

self.myImageView.transform=CGAffineTransformMakeScale(5.0, 5.0); 

到的UIImageView包含/显示该图片,我注意到,图像现在居然被拉伸。

我尝试将图像重新加载到视图中,但这似乎没有帮助。

UIImageView处于“Scale to Fill”模式。

简而言之,问题是:我如何确保图像不被拉伸,而是在转换后平铺?

更新:使用CGAffineTransformMakeScale的原因是,我想相对于其中心增长/缩小图像(视图)。

回答

0

不是直接将变换应用于视图,而是使用CGRectApplyAffineTransform并转换图像视图框。对于所有可能的转换而言,这并不适用,尽管如此限制了翻译和缩放。

+0

工作正常,但我之所以首先使用CGAffineTransformMakeScale,是为了从中心进行缩放:增加/缩小图像(视图),同时保持视图的中心位置固定。我将编辑我的原始问题。 – Sjakelien 2013-05-07 13:50:20

+0

在这种情况下,您最好的选择可能仅仅是使用CGRectInset。 – Wain 2013-05-07 14:31:27

+0

辉煌,谢谢! – Sjakelien 2013-05-07 17:10:51