やりたいことは、デスクトップ上にボタンをひとつ表示して、そのボタンを押すとビヨーンともうひとつのViewが飛び出てくる、という非常に簡単なもの。
大きさ64×64ピクセルのボタン・・・というかNSViewのサブクラス。これをクリックすると
横からびよーんと伸びてくるもうひとつ。
CATransitionのMoveInが一番思い描いているものに近い動きをするようなので、FakeViewとTransitionViewというふたつのViewを用意してやってみたりしていた。結果から言うと、FakeViewを全く透明にしてしまうと望んだ通りの効果が生まれないらしい、ということがわかった。透明度を下げて、少しでも見える状態に描画するとMoveInができるのだが・・・。
NSAnimationContextを使って
NSAnimationContext* current=[NSAnimationContext currentContext]; rect.origin.x-=250; rect.size.width=300; [current setDuration:0.5]; [[trasitionView animator] setFrame:rect];こんなふうにも書いてみたが、ビヨーンと飛び出すふうにはならない。もう少し違う書き方をすればいいのか・・・。
とかやっているうちに結局いつものxcatsan師匠のこのページ、
(旧) Cocoaの日々: Windowアニメーション(その3)NSViewAnimation
の解説のとおりにNSViewAnimationでやってみたところ、ほぼ、考えていた「びよーん」が実現できた。一番簡単な方法一番よかった、というよくあるオチ。
次はもう1回クリックしたらピロピロピロ、と引っ込むようにしてみたり、下から出てきたり上に飛び出したりしてみよう。
おもしろくて何度もボタンを押してビヨーンをやってしまった。
0 件のコメント:
コメントを投稿