【问题标题】:io swift Animation: alpha and constraintio swift 动画:alpha 和约束
【发布时间】:2017-11-09 11:20:34
【问题描述】:

这是我的代码,跳过按钮动画不起作用。它会立即消失。 就这样消失了

skipButtonBottomConstraint.constant = -40

 UIView.animate(withDuration: 1.0, animations: {

                self.titleLabel.alpha = 0
                self.skipButton.alpha = 0
                self.pageControl.alpha = 0


                self.view.setNeedsLayout()
    })

你能解释一下原因吗?

【问题讨论】:

  • 显示您围绕此功能设置的所有其他操作/代码。可能你设置了一些对动画有影响的东西
  • 打电话给layoutIfNeeded而不是setNeedsLayout
  • @Paulw11 谢谢!这是正确的答案
  • 您的主要设计目标是什么?你能解释一下吗?你对这个街区的期望是什么?它只是消失了,没有其他任何东西。

标签: ios swift animation


【解决方案1】:

我认为 Paul 是对的,您应该在动画块内调用 layoutIfNeeded(),而不是 setNeedsLayout()

【讨论】:

    【解决方案2】:

    确保你在setNeedsLayout之后调用layoutIfNeeded

    同样按照 Apple 的建议 - 在动画块之前调用一次,以确保所有待处理的布局操作都已完成。

    self.view.layoutIfNeeded()
    self.skipButtonBottomConstraint.constant = -40
    UIView.animate(withDuration: 1.0, animations: {    
            self.titleLabel.alpha = 0
            self.skipButton.alpha = 0
            self.pageControl.alpha = 0
            self.view.layoutIfNeeded()
    })
    

    【讨论】:

    • nope.... 不行,还是会突然消失,不知道是马上移出屏幕还是alpha的原因
    • @TheMiotz 根据您在此处显示的代码,此答案是正确的,应该可以工作
    • 你一定要调整动画块外的约束
    猜你喜欢
    • 2018-04-01
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    相关资源
    最近更新 更多