Cocoa アプリケーションを開発していて、NSCollectionView のビューの 1 つでボタンをクリックして、詳細ビューを開き、iPhoto 09 で「 i」は写真の右下隅にあります。写真の詳細を明らかにするために、写真が「反転」して拡大し、ウィンドウを中心に表示されます。
これを実現するために Core Animation を使用していると思います。Lemur Flip の例を見てきましたが、それを変更してアニメーションに再配置コードを追加しようとすると、フリップがスローされます。
- (IBAction)flip:(id)sender; に追加した位置決めコードは次のとおりです。LemurFlip のコード:
...
[CATransaction begin]; {
NSSize supersize = contentView.frame.size; // Size of window content view
NSSize subsize = frontView.frame.size; // Size of view we're flipping out
if(!frontView.isHidden)
{
// Move views to middle of the window
[[backView animator] setFrameOrigin:NSMakePoint((supersize.width / 2) - (subsize.width / 2), (supersize.height / 2) - (subsize.height / 2))];
[[frontView animator] setFrameOrigin:NSMakePoint((supersize.width / 2) - (subsize.width / 2), (supersize.height / 2) - (subsize.height / 2))];
}
else {
// Return views to point of origin
[[backView animator] setFrameOrigin:NSMakePoint(0, 0)];
[[frontView animator] setFrameOrigin:NSMakePoint(0, 0)];
}
[hiddenLayer addAnimation:[self _flipAnimationWithDuration:flipDuration isFront:NO] forKey:@"flipGroup"];
[visibleLayer addAnimation:[self _flipAnimationWithDuration:flipDuration isFront:YES] forKey:@"flipGroup"];
} [CATransaction commit];
...
これを行う方法や、これらの種類のアニメーションを組み合わせるためのルールの良い例はありますか?