UIView subView alpha动画无法正常工作

时间:2018-01-11 19:03:23

标签: ios swift uiview

UIScrollView滚动一定数量时,我正在尝试执行子视图的alpha动画。我有UIView其他UIView作为孩子。

更改下面的变量以触发动画

var isExpanded: Bool = false {
    didSet {
        if (oldValue != isExpanded) {
            toggleExpanded()
        }
    }
}

我尝试过选项1:

func toggleExpanded() {
    UIView.animate(withDuration: 300 , animations: {
        if (self.isExpanded) {
            self.mySubView.alpha = 1.0
        } else {
            self.mySubView.alpha = 0.0
        }
    })
}

选项2:

func toggleExpanded() {
    if (isExpanded) {
        mySubView.alpha = 1.0
    } else {
        mySubView.alpha = 0.0
    }

    UIView.animate(withDuration: 300 , animations: {
        self.layoutIfNeeded()
    })
}

任何一个似乎工作,alpha立即改变,而在选项1中似乎甚至相反。例如,自动布局约束可以影响动画吗?遇到这种问题时从哪里开始?

感谢。

1 个答案:

答案 0 :(得分:1)

你的第一个解决方案是正确的,但问题在于持续时间。 duration以秒计算,尝试1或0.5秒,一切都会好的。

查看animate(withDuration:animations:completion:)的{​​{3}}了解详情。