在按钮的touchUpInside上,它运行一系列代码(所有数据相关,主函数中没有任何代码修改视图对象),代码所做的最后一件事就是调用I&动画函数#39;贴在下面。问题是,动画看起来没什么应该的。
期望的动画:
文本和图像在屏幕上占据相同的位置,因此视觉应该是一个替换另一个,然后它回到原始状态。视图不是彼此嵌套的,它们共享同一个容器。
在模拟器中看到的实际动画:
-footerImg永远不可见 -footerBar文本在点击触发器后立即出现,没有动画 -footerBar文本淡出 -footerImg淡入
footerBar是一个UIButton
- 在动作开始之前,它的起始状态是按钮为空且清晰(用户不可见)
- 如果重要,这不是触发功能的按钮
- 有一个清晰的背景,因此它的文本应该是动画输入/输出的唯一内容
footerImg是一个UIImageView
- 只是一个图标图片,没什么特别的
func animateFeedback() {
UIView.animateWithDuration(0.25, delay: 0.0, usingSpringWithDamping: 1.0, initialSpringVelocity: 0, options: nil, animations: {
self.footerImg.alpha = 0
self.footerBar.alpha = 0
},
completion: { finished in
self.footerBar.setTitle("Item added", forState: UIControlState.Normal)
}
)
UIView.animateWithDuration(1.5, delay: 0.5, options: nil, animations: {
self.footerBar.alpha = 1
}
, completion: nil
)
UIView.animateWithDuration(0.75, delay: 1.25, options: nil, animations: {
self.footerBar.alpha = 0
}
, completion: { finished in
self.footerBar.setTitle("", forState: UIControlState.Normal)
}
)
UIView.animateWithDuration(0.25, delay: 1.5, options: nil, animations: {
self.footerImg.alpha = 1
}
, completion: nil
)
}
答案 0 :(得分:1)
对于序列动画,您应该在完成块中放置动画。 E.g。
footerBar文本应该淡入
footerBar文本应该淡出
试试这个:
CommandTimeout
其他人也一样
答案 1 :(得分:0)
评论您在“animateFeedback()”中拥有的所有代码并将以下代码粘贴到其中
UIView.animateWithDuration(1.5, delay: 0, options: nil, animations: { () -> Void in
self.footerImg.alpha = 0;
self.footerBar.setTitle("Item added", forState: UIControlState.Normal)
},
completion: { finished in
UIView.animateWithDuration(1.5, delay: 0, options: nil, animations: { () -> Void in
self.footerImg.alpha = 1;
self.footerBar.setTitle("", forState: UIControlState.Normal)
},
completion: { finished in
}
)
}
)