2011-07-16 3 views
5

私のプロジェクトでは、UIImageViewの次の作業を行っています。 1.)rotate it 2.)move it 3.)ズームします。 私のプロジェクトには、 "New"という名前のボタンがあり、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

は、リセット、次いで拡張を使用して回転を逆に、画像を回転させるためのディーパックの一例のオフ構築することができました感覚 ?画像は右または右に回転しますか? – booleanBoy

+0

いくつかのurコードを投稿してください.....私たちはあなたに助けてくれるかもしれません。 – booleanBoy

+0

@iphoneFreakお返事ありがとうございます。はい、そうです。 – Rahul

答えて

12

imageViewtransformプロパティを使用して行われ、リセット、あなたのUIImageViewオブジェクトである場合は、どこか他のlastRotationを使用していない場合は、

imageView.transform = CGAffineTransformIdentity; 

また、あなたはrotate:方法を少し短くすることができます。興味のある人のための別の実用的なスイフト例えば

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

、それはimageView.transform = CGAffineTransform.identityに変更されました。 –

0

、私は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 
    }) 
} 

} 
関連する問題