22

可能这只是正确语法的问题。

我使用animateWithDuration:delay:options:animations:completion:UIView 方法。

options:是有问题的部分:当我只分配一个选项(例如UIViewAnimationOptionCurveEaseInOut)时,一切正常。

如果我想为同一个动画分配多个选项怎么办?我怎样才能做到这一点?

我尝试了以下代码,但options:结果证明该部分被完全忽略

>   [UIView animateWithDuration:DURATION
>                         delay:DELAY
>                       options:(UIViewAnimationOptionAllowUserInteraction,
>                                UIViewAnimationOptionCurveEaseInOut)
>                    animations: ^{/*animations here*/}
>                    completion: ^(BOOL finished){/*actions on complete*/}];

这只是一次尝试,但没有奏效。我应该在这里使用哪种语法?

感谢您提前提供任何帮助。

4

2 回答 2

56

Objective-C

options:(UIViewAnimationOptionAllowUserInteraction |
                            UIViewAnimationOptionCurveEaseInOut)

迅速

在 Swift UIViewAnimationOptions 是一个选项集类型,可以通过以下方式传递多个选项:

options:[.AllowUserInteraction, .CurveEaseInOut]
于 2010-08-17T08:04:18.193 回答
2

只是为了添加编译器似乎忽略了您提供的选项但没有引发错误的原因是因为您尝试的语法使用了在 C 中经常被忽略的逗号运算符。本质上

(UIViewAnimationOptionAllowUserInteraction, UIViewAnimationOptionCurveEaseInOut)

告诉编译器放弃第一个选项,只分配逗号后的值。在更一般的情况下,逗号运算符的第一个参数被评估,但它的结果被丢弃。

于 2011-05-17T19:03:57.613 回答