当我按下按钮时,会出现一个带有标签的 View 。然后我希望标签消失并重新出现 5 次(带动画),每次标签以不同的文本重新出现。 我似乎无法获得任何代码来为 UILabel 设置动画并更改文本。我试过这个。但是,当我按下按钮时,循环和动画会立即出现。
持续时间如下:0.3、0.6、0.9、1.2、1.5
for i in 1...5 {
infoViewMsgLbl.text = randomReward(real: i) // This retrives a String
UIView.animate(withDuration: ((1.5/5)*Double(i)), delay: 0.0, options: .allowAnimatedContent, animations: {
self.infoViewMsgLbl.alpha = 0
}, completion: { finished in
UIView.animate(withDuration: ((1.5/5)*Double(i)), animations: {
self.infoViewMsgLbl.alpha = 1
})
})
print("in the loop: ", i)
}
最佳答案
您正在更改 duration
,但将 delay
保留为 0
(即立即开始)。在这些情况下,您可能会以相反的方式进行操作,更改 delay
并保持 duration
不变。
但鉴于您想要更改标签 text
,我可能会改用计时器:
var index = 1
Timer.scheduledTimer(withTimeInterval: 0.3, repeats: true) { [weak self] timer in
self?.infoViewMsgLbl.alpha = 0
self?.infoViewMsgLbl.text = self?.randomReward(real: index)
index += 1
if index > 5 { timer.invalidate() }
UIView.animate(withDuration: 0.3) {
self?.infoViewMsgLbl.alpha = 1
}
}
关于ios - 如何使 UILabel 出现和消失 5 次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40321988/