iPhone에서 이미지를 회전시키는 가장 빠른 접근 방식
문제
사용자 입력에 응답하여 UIIMAGE를 회전시켜야합니다. 나는 이것이 가능한 한 매끄럽기 때문에 변형과 렌더링을 수행하는 가장 빠른 방법을 알고 싶습니다. 이상적으로는 Uikit 또는 Quartz 프레임 워크 내에 머물고 싶습니다. 이미지의 속성은 다음과 같습니다.
- 크기 약 250x300 픽셀
- 불투명하지 않음 - 알파 채널로 렌더링해야합니다.
이 기능을 구현하기위한 최상의 접근 방식과 관행은 무엇입니까?
메모: 이것에 설명 된 접근법이 있습니다 stackoverflow 답변 그러나 이것이 최적인지 확실하지 않습니다. 물론 이것을 시도해 볼 것입니다. 그러나 이것이 이것이 '모범 사례'로 간주되는지 알고 싶어합니다.
해결책
핵심 애니메이션 레이어를 UIIMAGE에 적용하는이 예는 다음과 같은 영감을 줄 수 있습니다.
UIImage* rotatingImage = [UIImage imageNamed:@"someImage.png"];
CATransform3D rotationTransform = CATransform3DMakeRotation(1.0f * M_PI, 0, 0, 1.0);
CABasicAnimation* rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform"];
rotationAnimation.toValue = [NSValue valueWithCATransform3D:rotationTransform];
rotationAnimation.duration = 0.25f;
rotationAnimation.cumulative = YES;
rotationAnimation.repeatCount = 10;
[rotatingImage.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
다른 팁
UIIMAGEVIEW에 UIIMAGE를 표시하는 경우 뷰에서 변환 속성을 설정하지 않겠습니까?
myimageView.transform = CGAffineTransformMakeRotation(<angle in radians>);
그것은 단순하고, 이것에 대해 이야기하는 것과 같은 작은 이미지의 경우, 매우 성능이 뛰어납니다. 모든 uikit 뷰는 레이어 백업이므로 하드웨어 가속화됩니다. 이 속성은 또한 애니메이션 가능합니다.
제휴하지 않습니다 StackOverflow