Параметры анимации UIView с помощью Swift

Как установить UIViewAnimationOptions to .Repeat на UIView анимация блок:

UIView.animateWithDuration(0.2, delay:0.2 , options: UIViewAnimationOptions, animations: (() -> Void), completion: (Bool) -> Void)?)

2 ответов


Swift 3

почти то же самое, что и раньше:

UIView.animate(withDuration: 0.2, delay: 0.2, options: UIViewAnimationOptions.repeat, animations: {}, completion: nil)

за исключением того, что вы можете оставить полного типа:

UIView.animate(withDuration: 0.2, delay: 0.2, options: .repeat, animations: {}, completion: nil)

и вы все еще можете комбинировать опции:

UIView.animate(withDuration: 0.2, delay: 0.2, options: [.repeat, .curveEaseInOut], animations: {}, completion: nil)

Swift 2

UIView.animateWithDuration(0.2, delay: 0.2, options: UIViewAnimationOptions.Repeat, animations: {}, completion: nil)

UIView.animateWithDuration(0.2, delay: 0.2, options: .Repeat, animations: {}, completion: nil)

UIView.animateWithDuration(0.2, delay: 0.2, options: [.Repeat, .CurveEaseInOut], animations: {}, completion: nil)

большинство наборов опций Cocoa Touch, которые были перечислениями до Swift 2.0, теперь были изменены на structs,UIViewAnimationOptions одно из них.

, тогда как UIViewAnimationOptions.Repeat ранее было определено как:

(полу-псевдо-код)

enum UIViewAnimationOptions {
  case Repeat
}

теперь он определяется как:

struct UIViewAnimationOption {
  static var Repeat: UIViewAnimationOption
}

точка, чтобы достичь того, что было достигнуто до использования битовых масок (.Reverse | .CurveEaseInOut) теперь вам нужно будет поместить параметры в массив, либо непосредственно после options параметр, или определенный в переменной до ее использования:

UIView.animateWithDuration(0.2, delay: 0.2, options: [.Repeat, .CurveEaseInOut], animations: {}, completion: nil)

или

let options: UIViewAnimationOptions = [.Repeat, .CurveEaseInOut]
UIView.animateWithDuration(0.2, delay: 0.2, options: options, animations: {}, completion: nil)

пожалуйста, обратитесь к следующему ответу от пользователя @0x7fffffff для получения дополнительной информации:Swift 2.0-двоичный оператор " | " не может быть применен к двум операндам UIUserNotificationType