nsimageview를 보유하는 회전 nsview
-
20-09-2019 - |
문제
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];
제휴하지 않습니다 StackOverflow