web-dev-qa-db-ja.com

Swiftを使用したUIViewアニメーションオプション

UIViewAnimationOptionsアニメーションブロックでUIView.Repeatに設定するにはどうすればよいですか。

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

スイフト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)

スイフト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)
102
nschum

Swift 2.0より前の列挙型であったCocoa Touchのほとんどの 'オプション'セットは、構造体に変更されました。UIViewAnimationOptionsはそのうちの1つです。

一方、UIViewAnimationOptions.Repeatは、以前は次のように定義されていました。

(準擬似コード)

enum UIViewAnimationOptions {
  case Repeat
}

現在、次のように定義されています。

struct UIViewAnimationOption {
  static var Repeat: UIViewAnimationOption
}

ポイントは、ビットマスクを使用する前に達成されたことを達成するためです(.Reverse | .CurveEaseInOutoptionsパラメータの直後、または使用する前に変数で定義されたオプションを配列に配置する必要があります。

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-バイナリ演算子「|」は2つのUIUserNotificationTypeオペランドに適用できません

13
Kyle Gillen