在UIView动画中遇到允许交互的问题

Ric*_*hez 2 uiviewanimation ios

我有以下代码块淡出introView(UIView)

// Hide intro view after 5 seconds
[UIView animateWithDuration: 1.0
          delay: 5.0
        options: (UIViewAnimationOptionAllowUserInteraction |UIViewAnimationOptionCurveLinear)
        animations: ^{
         introView.alpha = 0;
        }
        completion: ^(BOOL finished) {
         [introView removeFromSuperview];
        }];
Run Code Online (Sandbox Code Playgroud)

我在introVew中有一个跳过按钮,但没有任何交互,我错过了什么?我必须添加这是一个针对3.2的通用应用程序,我正在使用XCode 4.2

Dav*_*ham 7

很确定这不可能在4.0之前:

UIView userInteractionEnabled Docs

在动画期间,无论此属性中的值如何,都会暂时禁用动画中涉及的所有视图的用户交互.您可以通过在配置动画时指定UIViewAnimationOptionAllowUserInteraction选项来禁用此行为.

在你尚未发布的应用程序中定位3.2似乎没什么意义.


Vin*_*ier 7

您将按钮alpha设置为0吗?
如果是,这里有一个关于动画的有趣的事情.

您在动画期间在屏幕上看到的内容不是应用程序看到的内容.将alpha设置为0的那一刻,即使您仍然在屏幕上看到该视图,alpha也为0.
此外,α低于0.05(不记得确切数字)的视图将不会获得触摸事件.

你可以做的是实现该- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event视图的superview.或者touchesEnded...你喜欢的.
(假设你没有将它的alpha设置为0.)

因此,您可以测试按钮所在的触摸,或者只是删除该按钮,让屏幕上的任何触摸都取消动画.


你可能也对这篇文章感兴趣:
核心动画,意想不到的动画位置和hitTest值