假设我有一个复杂的UIView
,它最初在屏幕上的帧很小,比方说80x80。
其中一个子视图是显示实际分辨率为1024x1024的图像的UIImageView
。
当用户点击UIView
时,我希望视图几乎全屏放大,以便用户可以更好地查看图像。
我已经知道如何缩放UIView
进行放大,我的问题如下。
在不对图像进行像素化的情况下放大此视图的最佳方法是什么?
我想到了这些选择:
我实际上可以将UIView
的帧设置为全屏尺寸,并且通常将其缩小,所以我确信当它放大时,它将非常详细。无论如何,这个解决方案有一个强大的性能问题,因为在这些缩小的视图中移动很多,将会对CPU / GPU产生相当大的影响。
我可以像我描述的那样做,所以小框架和比例> 1放大,但在这种情况下,图像是否会显示而没有像素化?
我实际上可以设置框架以大/小尺寸重新显示视图。在这种情况下,细节会很好,但我的性能也受到影响,因为我的UIView
有大约15个需要复杂计算才能重新布局的子视图,因此设置框架并不是那么“快”。
哪种解决方案最好?或者有人有其他更好的解决方案吗?
答案 0 :(得分:1)
为什么你不只是80x80
的缩略图表示,当用户点击任何缩略图时,你从包含所有缩略图的当前视图转换为new view
+transitionFromView:toView:duration:options:completion:
方法,只需显示一个UIImageView,并将全分辨率图像加载到新视图中:)