【问题标题】:UIView animations canceling any touch input?UIView 动画取消任何触摸输入?
【发布时间】:2011-05-07 12:52:45
【问题描述】:

我在这里有一个 UIScrollView,当用户滚动到页面时,我正在添加在屏幕中间显示标签,问题是当动画进行时用户无法滚动到下一页(所有用户交互似乎都被禁用)直到动画结束。

这是我显示标签的代码。

if(!scrollView.dragging)
    [UIView animateWithDuration:0.3
                          delay:0.3
                        options:UIViewAnimationOptionCurveEaseOut
                     animations:^(void){
                         [vesselNameLabel setFrame:frame];
                     }
                     completion:^(BOOL finished){}];

那么我该如何摆脱滚动视图上取消用户交互的情况?

【问题讨论】:

    标签: cocoa-touch ios uiview core-animation uianimation


    【解决方案1】:

    好的,所以我想通了。

    默认情况下,UIView 的块动画会阻止用户交互,要绕过它,您需要将 UIViewAnimationOptionAllowUserInteraction 作为选项之一传递。希望其他人也能使用这些信息。

    【讨论】:

    • 我还注意到它在 iOS 4 中默认阻止,但在 iOS 5 中没有。我只是在同事的仍在运行 iOS 4 的手机上测试时才遇到这个问题.
    • 在 iOS 6 中默认阻止。
    • 太棒了,这么简单:)
    【解决方案2】:

    如果 alpha 变为 0,我们注意到了一种奇怪的行为……触摸被忽略。

    【讨论】:

    • 正如预期的那样。不可见的视图不会捕获输入。
    猜你喜欢
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 2013-07-22
    • 1970-01-01
    相关资源
    最近更新 更多