我的应用程序有一个相对昂贵的屏幕重绘。在其原始形式中,我们将 UIScrollview 的最小缩放设置为 100%,将最大缩放设置为 400%,在 scrollViewDidEndZooming 中,我们重绘屏幕。
我们的测试人员写了一个错误,当用户继续捏超过最小或最大缩放级别时,屏幕仍然闪烁,因为在后台发生了昂贵的重绘。
我试图通过检查(在scrollViewDidEndZooming中)缩放是否实际改变来解决这个问题,并且只有在改变时才刷新内容。
然而,这带来了一个新问题:如果用户(例如)从 100% 开始,并且在一个手势中捏到 400%,然后再缩回到 100%,则内容会稍微模糊。这是因为我的优化将缩放视为“没有改变”,因为它以 100% 开始和结束。但实际上,视图是按比例放大和缩小的,这会导致模糊。
通常,当视图通过这些过渡缩放时,我会简单地设置一个标志或其他东西,但 UIScrollView 似乎没有提供任何这样的钩子——只有一个用于开始和结束滚动的钩子。
有没有办法完成我想要做的事情,除了滚动我自己的手势识别器并放弃 UIScrollview 中的手势识别器,这似乎有点矫枉过正?
编辑:我很惊讶其他人没有遇到这个(或者至少没有回应他们如何处理它)。似乎任何具有相对昂贵重绘的应用程序都会遇到我的“之前”行为或“之后”行为,这对于昂贵的重绘情况都不是理想的。想法?