2011-08-03 38 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,則針旋轉良好,但定位太高且太靠左。如果是有幫助的話,針頭甚至更靠右。 – Tanoro