非常に基本的なアニメーションを作成しています。メインビューの全幅(30pt)の緑色の線で、画面の下部から画面の上部に移動します。プログラムで追加されたUIViewをアニメーション化すると、幅が半分に分割されます
このアニメーションをトリガーするボタンがあります。ボタンを押す前に、緑色の表示が全幅になります。すばらしいです!ボタンを押してアニメーションを作成すると、ビューの幅はアニメーションを開始するときに半分に分割されます。ここで
は、私が持っているものです。
クラスレベル
let animatedLineView = UIView()
let lineAnimation = CABasicAnimation(keyPath: "position")
のviewDidLoad
super.viewDidLoad()
animatedLineView.frame = CGRect(x: 0, y: self.view.bounds.height - 30, width: self.view.bounds.width, height: 30)
animatedLineView.backgroundColor = UIColor.green
self.view.addSubview(animatedLineView)
ボタン
@IBAction func testBtnPressed(_ sender: UIButton) {
lineAnimation.duration = 5
lineAnimation.fromValue = CGPoint(x: 0, y: self.view.bounds.height)
lineAnimation.toValue = CGPoint(x: 0, y: 0)
lineAnimation.autoreverses = true
lineAnimation.repeatCount = 100
animatedLineView.layer.add(lineAnimation, forKey: nil)
}
ボタンが
を押され前に、これは、ビューはどのように見えるこれは、ボタンが
なぜ緑色の表示が半減するのですか?それを防ぐにはどうしたらいいですか?
'animatedLineView.frame'の設定で' width:self.view.frame.width'を使ってみましたか? – ystack