开发者

How can I define multiple options for UIViewAnimation?

Probably it is just a question of proper syntax.

I use the animateWithDuration:delay:options:animations:completion: UIView method.

The options: is the problematic part here: when I assign only one option (for example UIViewAnimationOptionCurveEaseInOut) everything works fine.

What if I want to assign multiple options to the same animation? How can I do that?

I have tried the following code, but the options: part turned out to be completely ignored:

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

It was just a try and it didn't work.开发者_StackOverflow Which syntax should I use here?

Thanks for any help in advance.


Objective-C

options:(UIViewAnimationOptionAllowUserInteraction |
                            UIViewAnimationOptionCurveEaseInOut)

Swift

In Swift UIViewAnimationOptions is an Option set type and multiple options can be passed following way:

options:[.AllowUserInteraction, .CurveEaseInOut]


Just to add the reason it seems the compiler ignored your supplied options yet didn't throw an error is because the syntax that you tried makes use of the comma operator which is often overlooked in C. Essentially

(UIViewAnimationOptionAllowUserInteraction, UIViewAnimationOptionCurveEaseInOut)

tels the compiler to discard the first option and only assign the value after the comma. In the more general case, the first argument to the comma operator is evaluated, but it's result is discarded.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜