【问题标题】:swift animateWithDuration not working in iOS 7swift animateWithDuration 在 iOS 7 中不起作用
【发布时间】:2015-01-12 17:29:05
【问题描述】:

我有一个在 iOS 8.1 中运行良好的动画,但在 iOS 7.1 中,按钮只是出现在它应该没有动画的位置。

按钮的前导、尾随和底部约束为 0,高度约束为 80。这些约束在情节提要中设置。

在 viewWillAppear 方法中,我将底部约束更改为 -80,这样一开始就看不到它。

当用户按下按钮时,按钮应该动画起来,我运行这个方法:

func animateCtaUp() {
    self.ctaView.layoutIfNeeded()
    UIView.animateWithDuration(0.5, delay: 0, options: .CurveEaseOut, animations: {
            self.ctaViewBottomConstraint.constant = 0
            self.ctaView.layoutIfNeeded()
        }, completion: { finished in

    })
}

【问题讨论】:

  • “不工作”是什么意思?什么都没有发生?
  • 按钮只是出现在它应该没有动画的地方
  • 当我在控制器的 self.view 中放置一个按钮时,该代码对我来说很好。什么是 ctaView?是按钮的超级视图吗?
  • 是的。唔。你知道为什么它不能在 iOS 7.1 中运行吗?

标签: ios animation swift ios7.1 ios8.1


【解决方案1】:

基本上有 2 个错误。

第一个是:我有一个没有布局约束的视图。当我添加它们时,其中一个动画开始运行。

第二个错误是:我在打电话

self.ctaView.layoutIfNeeded()

我应该打电话

self.view.layoutIfNeeded

【讨论】:

    猜你喜欢
    • 2015-03-29
    • 2015-08-08
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 2013-10-19
    • 2013-09-16
    • 2013-10-20
    • 1970-01-01
    相关资源
    最近更新 更多