gpt4 book ai didi

ios - 使用 Swift 4 和 UIView 的奇怪动画行为

转载 作者:行者123 更新时间:2023-12-01 15:58:08 25 4
gpt4 key购买 nike

我真的无法弄清楚我的代码有什么问题。让我详细解释一下我的目标是什么:

  • 我有两个 UIView在同一个UIViewController .它们被称为“redSquare”和“greenSquare”。
  • UIViewController出现我想为 redSquare 制作动画为了在 Y 轴上移动,直到到达 greenSquare 的上边界.

  • 这就是我设置 xCode 项目的方式:

    enter image description here

    我得到的行为完全相反,我真的无法理解为什么以及发生了什么:

    enter image description here

    对此有任何提示或解释吗?

    最佳答案

    好的。部分问题是您正在对齐中心 Y... 这意味着您正在尝试打破动画约束。

    问题的另一部分是您正在 viewDidLoad 中制作动画。 , 完全在 viewWillAppear 之前运行和 viewDidAppear被叫。

    对于我自己的动画,我通常为约束设置动画。

    也就是说,摆脱红框的中心 Y 约束,并添加一个新的约束,使红框距离父 View 底部有 Y 距离。将此新约束连接到 socket ,然后您可以像这样设置动画:

    @IBOutlet weak var redYConstraint : NSLayoutConstraint!

    override func viewDidLoad() {
    super.viewDidLoad()
    // This line sets the red box to be in the center Y of the green box
    self.redYConstraint.constant = self.greenSquare.frame.midY
    }

    override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    UIView.animate(withDuration: 3.0, delay: 2.0, options: UIViewAnimationOptions.curveEaseIn, animations: {
    self.redYConstraint.constant = self.greenSquare.frame.maxY
    self.view.layoutIfNeeded()

    }, completion: nil)
    }

    关于ios - 使用 Swift 4 和 UIView 的奇怪动画行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46460356/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com