UIView动画是否会取消任何触摸输入?

23

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

这是我显示标签的代码:

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

那么我该如何在滚动视图上取消用户交互呢?

2个回答

64

好的,我弄清楚了。

原来UIView的块动画默认会阻止用户交互,在解决这个问题时,需要将UIViewAnimationOptionAllowUserInteraction作为其中一个选项。希望其他人也能从这些信息中受益。


1
我还注意到在iOS 4中默认会阻止,但在iOS 5中不会。只有当我在同事的手机上测试时才遇到了这个问题,他仍在运行iOS 4。 - jowie
iOS 6默认使用块。 - mbuc91
太棒了,如此简单 :) - Macistador

0

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


1
那是预料之中的。不可见的视图无法捕获输入。 - Christian A. Strømmen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接