在UIScrollView的最大/最小缩放时防止屏幕重绘

时间:2012-07-05 17:51:19

标签: ios cocoa-touch uiscrollview uiscrollviewdelegate

我的应用有一个相对昂贵的屏幕重绘。在原始形式中,我们将UIScrollview的最小缩放设置为100%,最大缩放设置为400%,在scrollViewDidEndZooming中,我们重新绘制屏幕。

我们的测试人员写了一个错误,当用户继续缩小超过最小或最大缩放级别时,由于在后台进行昂贵的重绘,屏幕仍会闪烁。

我试图通过检查(在scrollViewDidEndZooming中)缩放是否实际更改来修复此问题,并且只在内容刷新时才进行修复。

然而,这引起了一个新问题:如果用户(例如)以100%开始,并且以一个手势收起高达400%,则返回到100%,内容会略显模糊。这是因为我的优化将缩放视为“没有改变”,因为它开始并以100%结束。但实际上,视图会按比例放大并缩小,从而导致模糊。

通常我只是在视图经过那些过渡缩放时设置一个标志或东西,但UIScrollView似乎不提供任何这样的钩子 - 只有一个用于开始和结束滚动的钩子。

有没有办法完成我想要做的事情,没有滚动我自己的手势识别器并放弃UIScrollview中的那些,这看起来有点过分了?

编辑: 我很惊讶其他人没有碰到这个(或者至少没有回应他们如何处理它)。似乎任何具有相对昂贵的重绘的应用程序都会遇到我的“之前”行为或“之后”行为,这对于昂贵的重绘情况来说都不是理想的。想法?

1 个答案:

答案 0 :(得分:0)

禁用UIScrollView弹跳可以帮助您解决问题吗?或者这种行为是否会影响您的应用?