我正在爲按鈕的位置設置動畫,將它圍繞一個圓旋轉。這會產生類似UISwitch
的行爲,除了它更加花哨。按鈕旋轉,但它會以大約0.25弧度結束離開所需的位置。我試圖找出在哪裏放置錨點,使按鈕圍繞其原點旋轉一個完美的圓。尋找旋轉變換的正確錨點難度
下面是我用來製作距原始位置120像素半徑的按鈕「軌道」的代碼。
float offsetX=120;
float offsetY=0;
enableDisableButton.layer.anchorPoint =
CGPointMake(offsetX/enableDisableButton.frame.size.width,
offsetY/enableDisableButton.frame.size.height);
我用下面的方法來做計算。路過的90參數爲degrees
,我希望看到該按鈕開始在180˚位置,並移動到90˚,還是從它的起源120個像素遠
-(CGAffineTransform)calculateLabelPositionFromFixedPointWithOffsetClockwiseInDegrees:(float)degrees
{
float rotation = degrees*(2*M_PI/360);
CGAffineTransform transform24 = CGAffineTransformMakeRotation(rotation);
NSLog(@"rotation: %f", rotation);
return transform24;
}
這一點弧度0.25左右偏移意味着我需要在視覺上確認每個按鈕的位置,並且不能通過編程方式輕鬆調整其位置。讚賞任何幫助確定正確的旋轉按鈕的方法。
我試過其他方法來旋轉對象。例如,我有一個箭頭 <--------x
,我想圍繞x
圍繞一圈轉動此箭頭。此操作的正確錨點位置是什麼?它是[1,0.5]嗎?
做這種旋轉的一種更簡單的方法是將對象放置在對稱的對稱內,將其置於所需的旋轉點並分配旋轉變換。這是有效的,但要求視圖大一倍:
Y----x----Y
<這使Y圍繞中心點X旋轉,沒有任何錨點調整。這是在模擬量規等內旋轉箭頭非常有用的方法。