【发布时间】:2018-10-09 09:09:53
【问题描述】:
我想重现 WhatsApp 按钮在正在进行的通话视图上的行为:它们在出现几秒钟后消失,而每次用户点击屏幕时,它们都会再次出现。
假设我有这两个按钮,
@IBOutlet weak var callButton: UIButton!
@IBOutlet weak var muteButton: UIButton!
这是输入viewDidAppear以及用户点击屏幕时调用的sn-p:
self.callButton.alpha = 1.0
self.muteButton.alpha = 1.0
delay(4.0) {
UIView.animate(withDuration: 1.0, animations: {
self.callButton.alpha = 0.0
self.muteButton.alpha = 0.0
}, completion: { _ in })
}
func delay(_ seconds: Double, completion: @escaping () -> ()) {
let popTime = DispatchTime.now() + Double(Int64(Double(NSEC_PER_SEC) * seconds)) / Double(NSEC_PER_SEC)
DispatchQueue.main.asyncAfter(deadline: popTime) {
completion()
}
}
使用此代码,如果用户在上次通话后 3 秒点击屏幕,按钮仍会在 1 秒后消失。所以我想知道如果同时再次点击视图,我如何阻止以前的UIView.animate。
感谢您的帮助
【问题讨论】:
标签: ios swift uiview uiviewanimation