親切すぎるiPhoneアプリ開発の本

反応をアニメーションで表示するには? - 暗黙のアニメーションの制御

Icon comment count 0
Icon stock count 0

2 暗黙のアニメーションの制御

アニメーションのおかげで、ずいぶんiOSアプリらしいスイッチになったと思います。ただ、取っ手を引っ張っている最中もアニメーションが実行されるので、もっと機敏に追随して欲しいと感じることでしょう。そのような時は、暗黙のアニメーションを無効にしてしまいます。

2.1 暗黙のアニメーションを無効にする

-continueTrackingWithTouch:withEvent:メソッドでおこなっている、frameプロパティの設定時は、暗黙のアニメーションが発生しないようにしましょう。

暗黙のアニメーションは、CATransactionクラスのタイプメソッド+beginと+commitで囲んだ中で、同じくタイプメソッドの+setDisableActions:の引数にtrueを指定することで一時的に無効にできます。

↓ Switch.swift サンプル:12/Switch-03
class Switch: UIControl {
            ・・・
    override func continueTrackingWithTouch(touch: UITouch, 
            withEvent event: UIEvent) -> Bool {
        let location = touch.locationInView(self)
        if self.contains(location) {
            CATransaction.begin()
            CATransaction.setDisableActions(true) ← 暗黙のアニメーションを停止させる
            thumb.frame = self.tumbFrame(location.x)

出典情報

Medium

親切すぎるiPhoneアプリ開発の本

  • 著者: 國居 貴浩

コメント

    コメントはありません