假设我有一个复杂的 UIView
,它最初位于屏幕上,框架很小,比方说 80x80。
它的一个 subview 是 UIImageView
,它显示一个实际分辨率为 1024x1024 的图像。
当用户点击 UIView
时,我希望 View 几乎全屏放大,以便用户可以更好地查看图像。
我已经知道如何缩放 UIView
来放大,我的问题如下。
在不像素化图像的情况下放大此 View 的最佳方式是什么?
我想到了这些选项:
我实际上可以将
UIView
的框架设置为全屏大小,并且通常会缩小它,所以我确信当它放大时,它会非常详细.这个解决方案无论如何都有一个严重的性能问题,导致移动许多这些缩小的 View ,将对 CPU/GPU 造成相当大的打击。我可以像我描述的那样做,那么小的框架和比例 > 1 放大,但在这种情况下,图像会在没有像素化的情况下显示吗?
我实际上可以将框架设置为以大/小尺寸重新显示 View 。在这种情况下,细节会很好,但我在这里也有性能问题,因为我的
UIView
有大约 15 个 subview 需要复杂的计算才能重新布局,所以设置框架不是那么“快” .
哪个是最好的解决方案?或者有人有其他更好的解决方案吗?
最佳答案
为什么不只使用 80x80
的缩略图表示,当用户点击任何缩略图时,您会从包含所有缩略图的当前 View 转换到新 View
使用 +transitionFromView:toView:duration:options:completion:
方法并简单地显示一个 UIImageView 并将全分辨率图像加载到新 View 中:)
关于ios - 缩放 UIView 而不会丢失细节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21670817/