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

Параметры анимации UIView с использованием Swift

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

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

Ответ 1

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)

Ответ 2

Большинство наборов параметров 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