2011-07-16 51 views
5

在我的項目中,我正在做UIImageView 以下活動1)旋轉它 2)將其移動 3)放大它。 我的項目還有一個名爲「新建」的按鈕,它將重置app.my的所有設置問題,如果我旋轉圖像並單擊新按鈕,則UIImageVIew的設置不會更改。可以有人有任何想法。預先感謝如何重置UIImageView變換屬性

-(void)rotate:(id)sender { 

    if([(UIRotationGestureRecognizer*)sender state] == UIGestureRecognizerStateEnded) { 

     lastRotation = 0.0; 
     return; 
    } 

    CGFloat rotation = 0.0 - (lastRotation - [(UIRotationGestureRecognizer*)sender rotation]); 

    CGAffineTransform oldTransform = [(UIPinchGestureRecognizer*)sender view].transform; 
    CGAffineTransform newTransform = CGAffineTransformRotate(oldTransform,rotation); 

    [[(UIRotationGestureRecognizer*)sender view] setTransform:newTransform]; 

    lastRotation = [(UIRotationGestureRecognizer*)sender rotation]; 
} 

上面的代碼我用於輪換。

+0

復位扭轉旋轉感 ?圖像將被旋轉回orinigal的位置? – booleanBoy

+0

請張貼一些我們的代碼.....我們可能會幫助您,然後 – booleanBoy

+0

@iphoneFreak感謝您的回覆。是的。 – Rahul

回答

12

如果imageView是你UIImageView對象,重置transform屬性使用完成後,

imageView.transform = CGAffineTransformIdentity; 

此外,你可以,如果你不使用lastRotation其他地方縮短rotate:方法的位。

-(void)rotate:(UIRotationGestureRecognizer *)gesture { 
    UIView * view = gesture.view; 
    view.transform = CGAffineTransformRotate(view.transform, gesture.rotation); 
    gesture.rotation = 0; 
} 
+2

在swift 3中,它已被更改爲imageView.transform = CGAffineTransform.identity; –

0

對於那些有興趣誰另一個實際斯威夫特的例子,我是能夠建立關Deepak的例子爲旋轉圖像,然後通過使用擴展的UIImageView

extension UIImageView { 

    func rotateCounterClockwise() { 
     UIView.animateWithDuration(0.3, animations: { 
      self.transform = CGAffineTransformMakeRotation(CGFloat(-M_PI)) 
    }) 
} 

    func rotateToOriginal() { 
     UIView.animateWithDuration(0.3, animations: { 
      self.transform = CGAffineTransformIdentity 
    }) 
} 

}