【问题标题】:How to Scale uiview and everything inside it (other custom drawn uiviews) with animation?如何使用动画缩放 uiview 及其内部的所有内容(其他自定义绘制的 uiview)?
【发布时间】:2012-11-01 09:55:15
【问题描述】:
我有一个 uiview,其中包含其他自定义绘制的 uiview。现在我想要这样,当用户单击此父视图时,它将扩展为带有动画的新定义帧。
我使用动画块取得了一些成功。问题是扩展视图只是未扩展 uiview 的缩放版本,因此它有点像素化。通过在动画块之后调用子视图setneedsdisplay(),现在扩展视图的最终结果是清晰的(即没有像素化)。但在过渡中它仍然像素化。
有人可以提出更好的方法吗?
【问题讨论】:
标签:
uiview
xcode4.2
uiviewanimationtransition
【解决方案1】:
这是一个老问题,但无论如何我都会试一试......
通过在动画块之后调用子视图 setneedsdisplay()
现在扩展视图的最终结果是清晰的(即不是
像素化)...有人可以提出更好的方法吗?
您可以在 Xcode 4.2 中完成此操作的一种方法是插入一个包含较大版本视图图片的图像视图。您可以通过rendering the view in an image context 创建该图片。当然,如果动画通过简单的缩放来扩展视图,这种方法效果最好;如果您在动画期间移动子视图,那么静态图像显然不会有帮助。
现在 Xcode 4.2 在很大程度上是一个遥远的内存,并且设备有更多的马力,在扩展期间使用自动布局约束来管理子视图的大小和位置应该会产生相当好的结果。