2013-07-03 95 views
1

我想要將我的圖像視圖圍繞定位點旋轉90度。你可以在這裏看到我想達到的目標。 enter image description here在定位點周圍旋轉圖像90度

我有這段代碼。

CGFloat DegreesToRadians(CGFloat degrees) 
{ 
    return degrees * M_PI/180; 
} 

NSNumber* DegreesToNumber(CGFloat degrees) 
{ 
    return [NSNumber numberWithFloat: 
      DegreesToRadians(degrees)]; 
} 
-(IBAction)rotate:(id)sender{ 
    CABasicAnimation *rotationAnimation = [CABasicAnimation 
              animationWithKeyPath:@"transform.rotation.y"]; 

    [rotationAnimation setFromValue:DegreesToNumber(0)]; 
    [rotationAnimation setToValue:DegreesToNumber(90)]; 
    [rotationAnimation setDuration:3.0f]; 
    [rotationAnimation setRepeatCount:1]; 

    [[[self imgShare] layer] addAnimation:rotationAnimation forKey:@"rotate"]; 
} 

有一個視圖問題。首先,當它旋轉90度時,它立即回到原來的狀態。我也不知道如何將它圍繞在一個錨點上。

任何幫助?

回答

1

試試這個:

self.imgShare.transform = CGAffineTransformMakeRotation(M_PI/2); 
0

您使用的是CABAsicAnimation剛剛處理動畫部件。旋轉後旋轉你的視圖是你的責任。 因此,您應該在旋轉後更改視圖的transform屬性。

self.imgShare.transform = CGAffineTransformMakeRotation(M_PI/2); 

對於你的問題anchorPoint。每個UIViewCALayer支持和每CALayer有一個anchorPoint屬性。只需更改視圖定位點,您就可以圍繞該點旋轉視圖。

anchorPoint默認爲0.5,0.5。將其更改爲0.0到1.0。