如何在没有像素化的情况下调整(缩小)UIView的大小?

时间:2011-03-23 19:34:23

标签: iphone ios ipad

在我的应用程序中,我正在创建一个全屏视图,然后将其缩小(大约为其原始大小的十分之一),以便我可以稍后将其设置为全尺寸。问题是该视图在该大小上看起来很糟糕,并且具有高度像素化。

这是全尺寸视图: enter image description here

这是现场缩小的观点: enter image description here

我正在使用setFrame:缩小视图 - 是否有某种方法可以告诉iOS使用高质量插值?或者我已经获得了最高质量的插值,这是它能做到的最好的?

1 个答案:

答案 0 :(得分:1)

我建议你在缩小之前将视图转换为图像(我假设你现在有了你的日视图,由很多子视图组成,然后你可以通过调整框架来缩小它。)

如果你看起来你会看到这就是Apple如何实现它:它们不是简单地缩小视图,而是将视图的内容捕获为图像,用该图像替换视图,然后缩小图像。你这样做有很多原因:效率(你可以摆脱缩小的视图并用一个UIImageView替换它们),速度和质量。

要将UIView保存为图像,您应该执行以下操作:

UIGraphicsBeginImageContext(myView.bounds.size);
[myView.layer renderInContext:UIGraphicsGetCurrentContext()];
viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

...然后用图像替换你的视图,并缩小它。