버튼의 위치를 애니메이션으로 원을 그리며 회전시킵니다. 이는 훨씬 더 화려한 점을 제외하면 UISwitch
과 같은 동작을 만듭니다. 버튼이 회전하지만 0.25 라디안만큼 원하는 위치에서 끝납니다. 버튼이 원점을 중심으로 완벽한 원으로 회전하도록 앵커 포인트를 배치 할 위치를 파악하려고합니다.회전 변환에 올바른 앵커 포인트를 찾는 데 어려움이 있습니다.
다음은 원래 위치에서 반경 120 픽셀의 "궤도"버튼을 만들기 위해 사용하는 코드입니다.
float offsetX=120;
float offsetY=0;
enableDisableButton.layer.anchorPoint =
CGPointMake(offsetX/enableDisableButton.frame.size.width,
offsetY/enableDisableButton.frame.size.height);
다음 계산 방법을 사용합니다. degrees
90의 인수를 전달 I는 180˚ 위치에서 버튼을 개시 참조 오프셋
-(CGAffineTransform)calculateLabelPositionFromFixedPointWithOffsetClockwiseInDegrees:(float)degrees
{
float rotation = degrees*(2*M_PI/360);
CGAffineTransform transform24 = CGAffineTransformMakeRotation(rotation);
NSLog(@"rotation: %f", rotation);
return transform24;
}
이 작은 0.25 라디안 정도의 수단 (120 개)의 픽셀 거리의 원점으로부터 여전히 90˚로 이동 기대 I 시각적으로 각 버튼의 위치를 확인해야하며 프로그래밍 방식으로 위치를 쉽게 조정할 수 없습니다. 버튼을 회전하는 올바른 방법을 결정하는 데 도움이됩니다.
개체를 회전하는 다른 방법을 시도했습니다. 예를 들어, 화살표가 <--------x
이고,이 화살표를 원 주위의 x
으로 회전하고 싶습니다. 이 작업에 올바른 앵커 포인트 배치는 무엇입니까? 그것 [1, 0.5]입니까?
이러한 종류의 회전을 수행하는 더 쉬운 방법은 객체를 대칭의 UIView
안에 넣고 원하는 회전 지점에 중심을두고 회전 변환을 지정하는 것입니다. 이 방법이 효과적이지만보기가 두 배로 커야합니다.
< 이것은 앵커 포인트 조정없이 Y를 중심점 X로 돌립니다. 이것은 아날로그 게이지 등 내에서 화살표를 회전시키는 데 매우 유용한 방법입니다.