2007年7月4日水曜日

NSViewからNSVIewへのトランジションをCoreImageで/ 2

追記(2008/10/06): サンプルプロジェクトを作った.エントリーと異なる部分もあるが許してください.



@interface TransitionView : NSTabView

@end
@implementation TransitionView

- (void)selectTabViewItem:(NSTabViewItem *)tabViewItem {
[transition captureViewForInitialView:self]; //切換え前の画像を開始画像として
[super selectTabViewItem:tabViewItem];  //切り替えて
[transition captureViewForFinalView:self]; //切換え後の画像を終了画像として

NSView *finalContentView = [tabViewItem view]; //終了Viewを
[finalContentView setHidden:YES]; //非表示
[transition start]; //アニメーション開始
[finalContentView setHidden:NO]; //表示
[self setNeedsDisplay:YES]; //ってこと.
}

@end

transitionが表すクラスについてはまた後日.

ちなみにこいつを呼び出すときはこうなる.

int pos = [transitionView indexOfTabViewItem:[transitionView selectedTabViewItem]];
pos = (pos==0)?1:0; //いま0なら1を,1なら0を呼ぶようにする.
[transitionView selectTabViewItemAtIndex:pos];

結局,"selectTabViewItemAtIndex"は"selectTabViewItem"を呼び出すので
上記TransitionViewのメソッドが呼ばれるわけです.

0 件のコメント: