ios - 如何使 UILabel 出现和消失 5 次?

标签 ios swift xcode uiview

当我按下按钮时,会出现一个带有标签的 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/

相关文章:

ios - UICollectionView 没有出现在模拟器中

swift - 翻转 UIStackView 中项目的位置

ios - iOS 应用程序在后台打开的通知(未杀死)

iOS:如果用户触发 PassKit 通行证,有没有办法在后台唤醒您的应用程序?

ios - 使用 Coredata 学习 Swift : why don't I get any UITableViewCells?

ios - 努力将 View Controller 推到UITabBarController

iphone - 跨更新保存 iOS plist

iphone - Storyboard标识符的代码完成

xcode - 如何在 Xcode 5 产品首选项编辑器中访问 Assets 目录中的图像(用于文档图标)

ios - 纵向/横向 iPad 布局 View