【发布时间】:2021-04-06 21:27:59
【问题描述】:
我正在尝试使用 Swift 在 iOS 上的 UITableViewCell 中为视图实现类似脉冲的效果。要求是从 alpha 1.0 到 0.5 再回到 1.0 的 2 秒动画。并无限重复。
我尝试了几种方法,但动画永远不会开始或重复。
view 是一个简单的 UIView 出口:
@IBOutlet private weak var view: UIView!
尝试过的变体:
UIView.animateKeyframes(withDuration: 2.0, delay: 0, options: [], animations: {
UIView.addKeyframe(withRelativeStartTime: 0, relativeDuration: 0.5, animations: {
view.alpha = 0.0
})
UIView.addKeyframe(withRelativeStartTime: 0.5, relativeDuration: 0.5, animations: {
view.alpha = 1.0
})
}, completion: nil)
let animationDuration = 1.0
UIView.animate(withDuration: animationDuration,
delay: 0,
options: [.repeat, .autoreverse],
animations: {
view.alpha = 0.5
},
completion: nil)
如果有意义的话,这两种方法都是在 awakeFromNib() 中触发的。
【问题讨论】:
-
信息不足。代码就目前而言还可以,但当然一切都取决于
view是什么,这段代码何时运行等等。awakeFromNib作为开始这个的时间是没有意义的;view需要在界面中才能发生任何事情。 -
view 只是 UITableViewCell 中的一个 UIView 出口。为问题添加了更多信息。如果不是 awakeFromNib,动画应该从哪里开始?