2011-08-03 14 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

関連する問題