2016-10-09 10 views
0

私の現在の方法は、サブビューとしてボタンにビューを追加することです逆にする:どのように左から右にUIButtonフレームをアニメーション化し、

let button = UIButton(frame: CGRect(x: 0, y: 0, width: 0, height: 60)) 
button.setTitle("Add", for: .normal) 
buttonView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 60)) 
buttonView.backgroundColor = .black 
button.addSubview(buttonView) 

そしてビューの幅をアニメーション化:

UIView.animate(withDuration: 0.3, delay: 0.0, options: .curveEaseIn, animations: { 
    self.buttonView.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 60) 
    }, completion: nil) 

私がこれについて気に入らないのは、ボタンのタイトルが静的であることです。私はそれをアニメーションの一部にしたい。

また、ボタンのフレームをアニメーションしようとしましたが、動作しないようです。何も起こりません。
マイボタンはUITextFieldinputAccessoryViewに追加されていますので、問題があるかどうかわかりません。

どのようにボタンを正しくアニメーション表示できますか?

+0

あなたはAutoLayoutを使用していませんか? –

答えて

1

フレームをアニメーション化するために、UIButtonに追加のサブビューは必要ありません。

は、アニメーションの前に、アニメーションのクロージャ内)(layoutIfNeededを追加しよう:

let button = UIButton(frame: CGRect(x: 0, y: 0, width: 60, height: 60)) 
button.setTitle("Add", for: .normal) 
button.setTitleColor(UIColor.green, for: .normal) 
button.backgroundColor = UIColor.black 

view.addSubview(button) 
button.layoutIfNeeded() 

UIView.animate(withDuration: 3, delay: 0.0, options: .curveEaseIn, animations: { 
    button.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 60) 
    button.layoutIfNeeded() 
    }, completion: nil) 

・ホープ、このことができます。

関連する問題