防止在 UIScrollView 的最大/最小缩放时重绘屏幕
Posted
技术标签:
【中文标题】防止在 UIScrollView 的最大/最小缩放时重绘屏幕【英文标题】:Preventing screen redraw at max/min zoom of UIScrollView 【发布时间】:2012-07-05 17:51:19 【问题描述】:我的应用有一个相对昂贵的屏幕重绘。在其原始形式中,我们将 UIScrollview 的最小缩放设置为 100%,将最大缩放设置为 400%,在 scrollViewDidEndZooming 中,我们重绘屏幕。
我们的测试人员编写了一个错误,即当用户继续捏合超出最小或最大缩放级别时,屏幕仍然会闪烁,因为在后台进行了昂贵的重绘。
我尝试通过检查(在 scrollViewDidEndZooming 中)缩放是否实际发生变化来解决此问题,并且仅在发生变化时才刷新内容。
然而,这引起了一个新问题:如果用户(例如)从 100% 开始,并且在一个手势中 捏到 400%,然后再回到 100%,则内容会有些模糊。这是因为我的优化将缩放视为“没有改变”,因为它以 100% 开始和结束。但实际上,视图是按比例放大和缩小的,这会导致模糊。
通常,当视图通过这些过渡缩放时,我会简单地设置一个标志或其他东西,但 UIScrollView 似乎没有提供任何此类挂钩 - 仅用于开始和结束滚动的挂钩。
除了滚动我自己的手势识别器并放弃 UIScrollview 中的手势识别器之外,有没有办法完成我想要做的事情,这似乎有点矫枉过正?
编辑: 我很惊讶其他人没有遇到这个问题(或者至少没有回应他们如何处理它)。似乎任何具有相对昂贵重绘的应用程序都会遇到我的“之前”行为或“之后”行为,这对于昂贵的重绘情况都不是理想的。想法?
【问题讨论】:
【参考方案1】:禁用 UIScrollView 弹跳对您的问题有帮助吗?或者这种行为会影响您的应用吗?
【讨论】:
弹跳已被禁用,每个应用程序设计。感谢您的建议。以上是关于防止在 UIScrollView 的最大/最小缩放时重绘屏幕的主要内容,如果未能解决你的问题,请参考以下文章