Как определить несколько параметров для 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*/}];
Это была просто попытка, и это не сработало. Какой синтаксис я должен использовать здесь?
Спасибо за любую помощь заранее.
Ответы
Ответ 1
Objective-C
options:(UIViewAnimationOptionAllowUserInteraction |
UIViewAnimationOptionCurveEaseInOut)
Swift
В Swift UIViewAnimationOptions представляет собой Тип набора параметров, и несколько вариантов могут передаваться следующим образом:
options:[.AllowUserInteraction, .CurveEaseInOut]
Ответ 2
Просто добавьте причину, по которой компилятор проигнорировал предоставленные вами параметры, но не сделал ошибку, потому что в синтаксисе, который вы пробовали, используется оператор запятой, который часто пропускается в C. По существу
(UIViewAnimationOptionAllowUserInteraction, UIViewAnimationOptionCurveEaseInOut)
отключает компилятор, чтобы отменить первый параметр и назначить значение после запятой. В более общем случае вычисляется первый аргумент для оператора запятой, но результат отбрасывается.