Подтвердить что ты не робот

Как определить несколько параметров для 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*/}];

Это была просто попытка, и это не сработало. Какой синтаксис я должен использовать здесь?

Спасибо за любую помощь заранее.

4b9b3361

Ответ 1

Objective-C

options:(UIViewAnimationOptionAllowUserInteraction |
                            UIViewAnimationOptionCurveEaseInOut)

Swift

В Swift UIViewAnimationOptions представляет собой Тип набора параметров, и несколько вариантов могут передаваться следующим образом:

options:[.AllowUserInteraction, .CurveEaseInOut]

Ответ 2

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

(UIViewAnimationOptionAllowUserInteraction, UIViewAnimationOptionCurveEaseInOut)

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