Как я могу определить несколько параметров для UIViewAnimation? - PullRequest
21 голосов
/ 17 августа 2010

Возможно, это просто вопрос правильного синтаксиса.

Я использую 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 ]

52 голосов
/ 17 августа 2010

Objective-C

options:(UIViewAnimationOptionAllowUserInteraction |
                            UIViewAnimationOptionCurveEaseInOut)

Swift

В Swift UIViewAnimationOptions - это Тип набора опций и несколькоопции могут быть переданы следующим образом:

options:[.AllowUserInteraction, .CurveEaseInOut]
2 голосов
/ 17 мая 2011

Просто чтобы добавить причину, по-видимому, компилятор проигнорировал предоставленные вами параметры, но не выдал ошибку, потому что в используемом вами синтаксисе используется оператор запятой, который часто игнорируется в C.

сообщает компилятору об отмене первой опции и назначении значения только после запятой.В более общем случае вычисляется первый аргумент оператора запятой, но его результат отбрасывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...