슬라이더를 사용하여 뷰 중심에서 이미지를 회전하려고합니다. 하나는 x, y 및 Z 평면에 사용됩니다. 이미지가 프레임 된 경계 (700X700) 안에서 회전하고 싶지만 프레임의 가장자리를 중심으로 어떤 이유로 회전합니다. 앵커 포인트를 다시 설정하려고했지만 아무 것도하지 않는 것 같습니다. Y 축 주위로 회전시키는 코드는 다음과 같습니다. 앵커 포인트 섹션이 주석 처리되었음을 알 수 있습니다. 전혀 영향을 미치지 않았습니다. 내가 뭘 잘못하고 있는지 알 겠어?왜 내 이미지 레이어가 이미지 가장자리가 아닌 중심을 중심으로 회전합니까?
float angleYDeg = self.ySlider.value;
float angleYRad = (angleYDeg/180.0) * M_PI;
// Disable Animation
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithBool:YES]
forKey:kCATransactionDisableActions];
// Get Layers
CALayer *containerLayer = [[self.imageView.layer sublayers] objectAtIndex:0];
CALayer *holder = [containerLayer valueForKey:@"__holderLayer"];
//CGPoint anchor = holder.anchorPoint;
//anchor.y = self.imageView.frame.size.height/2;
//holder.anchorPoint = anchor;
// Update xAngle Value
[containerLayer setValue:[NSNumber numberWithFloat:angleYRad] forKey:@"__angleY"];
// Apply rotations
CGFloat angleX = [[containerLayer valueForKey:@"__angleX"]floatValue];
CATransform3D holderTransform = CATransform3DMakeRotation(angleX, 1.0f, 0.0f, 0.0f);
holderTransform = CATransform3DRotate(holderTransform, angleYRad, 0.0f, 1.0f, 0.0f);
holder.transform = holderTransform;
[CATransaction commit];
// Update Label
self.yValueLabel.text = [NSString stringWithFormat:@"%4.0fº", angleYDeg];
이것은 완벽합니다. 정확히 내가 찾고 있던 것이 었습니다! 매트 감사합니다! – marina