문제

NSVIEW를 만들고 있는데, 이는 DrawRect 메소드에서 NSIMAGEVIEW를 하위 뷰로 생성하고 추가합니다.

이 nsimageview (circleview) 또는 [self]를 돌리고 싶습니다. 그래서 다른 방법으로는 그렇게하려고합니다.

-(void)startAnimation {
CABasicAnimation* spinAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
spinAnimation.toValue = [NSNumber numberWithFloat:5*2*M_PI];
spinAnimation.duration = 2;
[circleView.layer addAnimation:spinAnimation forKey:@"spinAnimation"];
}

그러나이 코드는 메소드가 호출 될 때 아무것도하지 않습니다. 내가 뭔가 잘못하고 있습니까? 나는 self.layer와 circleview.layer를 시도했지만 작동하지 않는 것 같습니다 ...

도움이 되었습니까?

해결책

당신은 단지 애니메이션을 정의하는 것입니다. 실제로 애니메이션을 수행하는 애니메이션 블록을 호출하는 것이 아닙니다.

다음 사이에 정의 된 블록을 호출해야합니다.

+ beginAnimations:context:
+ commitAnimations

실제로 애니메이션을 실행합니다.

edit01 : 내 나쁜. 나는 태그에주의를 기울이지 않았고 iPhone API에 대한 답을 추가했습니다.

다른 팁

이 문제에 대한 답은 nsview/nsimageview에 애니메이션을 수행 할 백업 레이어가 없다는 것입니다.

당신은 이것을 다음과 같이 설정했습니다.

[NSView setWantsLayer:YES];
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top