ios - XIB 中的动画按钮以编程方式移动

标签 ios swift uiviewanimation

我想为 XIB 中的按钮设置动画,使其在 View 加载时向上移动。使用下面的代码,按钮会随着动画移动,但它会从新位置 BACK 移动到 XIB 中设置的原始位置。

感觉好像我遗漏了一些简单的东西,但几个小时以来我一直在尝试采用这种不同的方式,但都没有成功。这是因为我正在使用自动布局为 XIB 中设置的内容设置动画吗?任何想法表示赞赏。

// Relevant Part of XIB class
@IBDesignable class BottomNagivationBar: UIView {

    var view:UIView!

    //Buttons Outlet
    @IBOutlet weak var exploreIcon: UIButton!
}



override func viewDidLoad() {
    super.viewDidLoad()

UIView.animate(withDuration: 2, delay: 1, options: .allowUserInteraction, animations: {

        let position: CGFloat = 10
        let x:CGFloat = self.BottomNavigationBar.exploreIcon.frame.origin.x
        let y:CGFloat = self.BottomNavigationBar.exploreIcon.frame.origin.y + position

        self.BottomNavigationBar.exploreIcon.frame = CGRect(x: x, y: y, width: self.BottomNavigationBar.exploreIcon.frame.width, height: self.BottomNavigationBar.exploreIcon.frame.height) 

    })
}

最佳答案

Is this because I am animating something set up in a XIB with auto layout?

是的。动画和自动布局是敌人。您为位置设置动画,然后出现布局并应用您的约束,它仍然指定按钮开始的位置 - 所以它会跳回。

关于ios - XIB 中的动画按钮以编程方式移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52397328/

相关文章:

ios - CGAffineTransform 不在动画 block 内设置动画

ios - 如何根据用户选择更新应用程序的整个 UI?

ios - 当我的应用程序在 fg 上时,我的应用程序如何发送推送通知?

ios - 在 iOS 中实现永久动画背景的最佳技术是什么?

ios - 使用多色更改 UIView 的背景颜色

ios - 处理使用异步 API 调用填充 TableView

iOS - 随机 "Cannot connect to host"3G

ios - 如何将搜索栏制作成 iPhone 联系人应用程序或处理多个不完整关键字的搜索栏

ios - 图片下载问题

ios - 从 UIScrollView 上的特定位置开始