2 暗黙のアニメーションの制御
アニメーションのおかげで、ずいぶんiOSアプリらしいスイッチになったと思います。ただ、取っ手を引っ張っている最中もアニメーションが実行されるので、もっと機敏に追随して欲しいと感じることでしょう。そのような時は、暗黙のアニメーションを無効にしてしまいます。
2.1 暗黙のアニメーションを無効にする
-continueTrackingWithTouch:withEvent:メソッドでおこなっている、frameプロパティの設定時は、暗黙のアニメーションが発生しないようにしましょう。
暗黙のアニメーションは、CATransactionクラスのタイプメソッド+beginと+commitで囲んだ中で、同じくタイプメソッドの+setDisableActions:の引数にtrueを指定することで一時的に無効にできます。
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)
この記事は会員限定です。会員登録をすると続きをお読みいただけます。
ログイン / 新規登録