2017-11-01 13 views
0

私は以下のようにラベルとUIImageレイアウトを持っています。
TapGestureRecognizerを回転させてUIImageを処理する方法

LabelMonth ImgArrowDown

このLabelMonthは、以下のようにTapGestureRecognizerを持っています。

ユーザーがLabelMonthをタップすると、ImageArrowDownは360を回転させてポインティングアップを表示します。

問題:ユーザーが再びLabelMonthをタップすると、どのように下向きの矢印を意味する元の位置にImageArrowDownをバック回転させる


のviewDidLoad(){

let tapGestureRecognizer = UITapGestureRecognizer(target:self, action: 
     #selector(HandleImgRotation)) 

    LabelMonth.isUserInteractionEnabled = true LabelMonth.addGestureRecognizer(tapGestureRecognizer) 

    } 




    func HandleImgRotation(_sender:AnyObject){ 

    UIView.animate(withDuration:1.0, animations: ({self.imgArrowDown.transform = CGAffineTransform(rotationAngle: self.radian(degree:360)) 
          })) 

    } 



    func radian(degrees:Double) -> CGFloat{ 

    return CGFloat(degrees * .pi/degrees) 

    } 

おかげ

答えて

1

次の方法で問題を解決しなければならない...

var rotated = false 

func HandleImgRotation() { 
     UIView.animate(withDuration: 2.0) { 
      if !self.rotated { 
       UIView.animate(withDuration:1.0, animations: ({ 
        ImgArrowDown.transform = CGAffineTransform(rotationAngle: CGFloat(M_PI * 0.999)) 
        self.rotated = true 
       })) 
      } else { 
       UIView.animate(withDuration:1.0, animations: ({ 
        ImgArrowDown.transform = CGAffineTransform.identity 
        self.rotated = false 
       })) 
      } 
     } 
    } 
関連する問題