2010-05-16 4 views
3

코코아 애플리케이션을 개발 중이며 NSCollectionView의 뷰 중 하나에서 버튼을 클릭하고 클릭하면 iPhoto 09에서와 같이 세부 정보 뷰를 플립형으로 열고 화면 가운데에 배치 할 수 있기를 원합니다. 사진의 오른쪽 하단에있는 "i". 사진이 "플립 (flips)"되고 자랍니다. 창을 중심으로 사진에 대한 세부 정보가 표시됩니다.iPhoto 09에서와 같이 플립 앤 성장 애니메이션을 어떻게 수행합니까?

나는 이것을 달성하기 위해 Core Animation을 사용하고 있다고 생각합니다. Lemur Flip 예제를 살펴 보았지만 애니메이션에 위치를 변경하는 코드를 추가하기 위해이를 수정하려고하면 플립에서 벗어납니다.

여기에 - (IBAction) flip : (id) 보낸 사람에 추가 한 위치 지정 코드가 있습니다. 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]; 
... 

이런 종류의 애니메이션을 결합하는 방법에 대한 좋은 예가 있습니까?

+0

이 아이폰 OS에서 할 수있는 경우 당신은 알고 계십니까 ? –

답변

1

대신 당신은

[hiddenLayer setPosition:]; 
[visibleLayer setPosition:]; 

을 원하는

[[backView animator] setFrameOrigin:]; 
[[frontView animator] setFrameOrigin:]; 

의 당신은 어쩌면 CABasicAnimation을 사용하여 애니메이션 값을 조정할하기를 원할 것입니다

+0

고마워, 그랬어! – Austin

관련 문제