2016-05-20 6 views
0

「+」ボタンから「X」ボタンへのクリックをクリックするとアニメーション化しようとしています。トランスフォームアニメーションを実行した後、ナビゲーションバーのiOS UIButtonが消える

enter image description here

私はUIViewの上の標準のボタンを使用しているとき、すべてが素晴らしい作品。私は次のコードを使用しています:

UIView.animateWithDuration(2.0, delay: 0.0, options: .CurveEaseOut, animations: { 
     let transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4)) 
     self.navigationPlusButton.transform = transform 
     }, completion: nil) 

ナビゲーションバーのボタンで同じことを達成しようとすると問題が発生します。

enter image description here

ボタンの高さが回転する前に0にリサイズされ、何の制約の定義が存在しないので、私は、ナビゲーションボタンのサイズを修正する方法がわからないように見えます。うまくCABasicAnimation回転ボタンを使用して第二のアプローチが、それはそれはアニメーションが終了した直後、初期状態に戻っ:ストーリーボード

enter image description here

との制約

enter image description here

注意に注意してください。もう一度クリックするまで「X」のままにします。それは、ナビゲーションバーの外にそう簡単に動作し、ナビゲーションバーでそれを行うために一生懸命であるどのように

let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation") 
    rotateAnimation.fromValue = 0.0 
    rotateAnimation.toValue = CGFloat(M_PI_4) 
    rotateAnimation.duration = 2.0 
    self.navigationPlusButton.layer.addAnimation(rotateAnimation, forKey: nil) 

enter image description here

?私は解決策を見つけることができません。

rotateAnimation.removedOnCompletion = false 

それはあなたの問題を解決することがあります。

答えて

1

コードに次の行を入力すると、問題が解決します。

rotateAnimation.fillMode = kCAFillModeForwards 
rotateAnimation.removedOnCompletion = false 
1

はCABasicAnimationにこのラインを試してみてください助けてください。

関連する問題