如何为UIViewAnimation定义多个选项?

时间:2010-08-17 08:02:02

标签: iphone uiviewanimation

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

我使用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*/}];

这只是一次尝试而且没有用。我应该在这里使用哪种语法?

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

2 个答案:

答案 0 :(得分:52)

<强>目标C

options:(UIViewAnimationOptionAllowUserInteraction |
                            UIViewAnimationOptionCurveEaseInOut)

Swift

在Swift中,UIViewAnimationOptions是Option set type,可以通过以下方式传递多个选项:

options:[.AllowUserInteraction, .CurveEaseInOut]

答案 1 :(得分:2)

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

(UIViewAnimationOptionAllowUserInteraction, UIViewAnimationOptionCurveEaseInOut)

让编译器丢弃第一个选项,并仅在逗号后面指定值。在更一般的情况下,将评估逗号运算符的第一个参数,但它的结果将被丢弃。