2011-08-03 8 views
0

계기가있는 앱을 볼 수 있습니다. 계량기에는 내가 지나가는 부울 세트에 따라 지금까지 회전하는 바늘이 있습니다. 문제는 바늘을 제대로 돌리는 데 많은 어려움을 겪고 있다는 것입니다.미리 결정된 축을 중심으로 이미지 회전

needle.layer.anchorPoint = CGPointMake(0.85, 0.5); // Set point of rotation 

if(isHelpful == true) 
{ 
    // rotate only a little 
    needle.transform = CGAffineTransformMakeRotation(7*M_PI/180); 
} 

if(isNeeded == true) 
{ 
    // rotate 95 degrees 
    needle.transform = CGAffineTransformMakeRotation(95*M_PI/180); 
} 

if(isCritical == true) 
{ 
    // rotate 175 degrees 
    needle.transform = CGAffineTransformMakeRotation(175*M_PI/180); 
} 

이렇게하면 니들 이동이 완벽하게 회전하지만 내 펜촉이 다 움직여서 위치가 변경됩니다. 내 펜촉의 동일한 위치에 머물러 있고 내가 결정한 정도까지 특정 축을 중심으로 회전하는 이미지가 필요합니다.

이미지는 145x36이고 축 포인트는 127x18입니다.

답변

0

보기 레이어의 anchorPoint을 변경하면 위치가 반드시 영향을받습니다. Brad Larson은 this question에 대한 응답으로 훌륭한 설명을 제공합니다.

+0

나는 내 설명이 명확하지 않을 수 있습니다. 위의 코드에서 볼 수 있듯이 어떤 회전이 수행 되든 상관없이 anchorPoint는 동일해야합니다. 이상한 점은 anchorPoint가 모든 회전에서 동일하지만 런타임에 바늘의 위치가 완전히 다르다는 것입니다. isCritical이 실행되면 바늘이 완벽한 지점에 있고 완벽하게 회전합니다. isNeeded가 실행되면 바늘이 잘 회전하지만 너무 높고 왼쪽으로 너무 멀리 배치됩니다. isHelpful이 실행되면 바늘이 오른쪽으로 더 멀리 이동합니다. – Tanoro

관련 문제