当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中似乎甚至相反。例如,自动布局约束可以影响动画吗?遇到这种问题时从哪里开始?
感谢。
答案 0 :(得分:1)
你的第一个解决方案是正确的,但问题在于持续时间。 duration
以秒计算,尝试1或0.5秒,一切都会好的。
查看animate(withDuration:animations:completion:)
的{{3}}了解详情。