Pergunta

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. Which syntax should I use here?

Thanks for any help in advance.

Foi útil?

Solução

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]

Outras dicas

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top