【问题标题】:Preventing screen redraw at max/min zoom of UIScrollView防止在 UIScrollView 的最大/最小缩放时重绘屏幕
【发布时间】:2012-07-05 17:51:19
【问题描述】:

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

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

我尝试通过检查(在 scrollViewDidEndZooming 中)缩放是否实际发生变化来解决此问题,并且仅在发生变化时才刷新内容。

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

通常,当视图通过这些过渡缩放时,我会简单地设置一个标志或其他东西,但 UIScrollView 似乎没有提供任何此类挂钩 - 仅用于开始和结束滚动的挂钩。

除了滚动我自己的手势识别器并放弃 UIScrollview 中的手势识别器之外,有没有办法完成我想要做的事情,这似乎有点矫枉过正?

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

【问题讨论】:

    标签: ios cocoa-touch uiscrollview uiscrollviewdelegate


    【解决方案1】:

    禁用 UIScrollView 弹跳对您的问题有帮助吗?或者这种行为会影响您的应用吗?

    【讨论】:

    • 弹跳已被禁用,每个应用程序设计。感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 2016-05-12
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    相关资源
    最近更新 更多