문제

사용자 입력에 응답하여 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 뷰는 레이어 백업이므로 하드웨어 가속화됩니다. 이 속성은 또한 애니메이션 가능합니다.

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