【发布时间】:2017-07-27 19:12:35
【问题描述】:
我有一个UILabel,它的属性文本集类似于
早上好\n亚历克斯
它在UILabel 中显示为 2 行。我想展示这个,几秒钟后删除早上好部分,只展示 Alex 部分。
这可能吗? 请帮帮我
【问题讨论】:
标签: ios swift3 uilabel nsmutableattributedstring
我有一个UILabel,它的属性文本集类似于
早上好\n亚历克斯
它在UILabel 中显示为 2 行。我想展示这个,几秒钟后删除早上好部分,只展示 Alex 部分。
这可能吗? 请帮帮我
【问题讨论】:
标签: ios swift3 uilabel nsmutableattributedstring
您可以创建一个NSTimer - Documentation 秒数,在该计时器触发后,您只需更改UILabel 的文本
textLabel.attributedText = "Alex"
NSTimer的完成块内部
【讨论】:
你可以使用 GCD
let delayInSeconds = 4.0
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + delayInSeconds) {
textLabel.attributedText = "Alex"
}
【讨论】:
使用此功能并传递您的延迟并更新属性文本:-
func delay(_ delay: Double, closure: @escaping () -> Void) {
DispatchQueue.main.asyncAfter(
deadline: DispatchTime.now() + Double(Int64(delay * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC), execute: closure)
}
func updateAttributedText() {
delay(1) {
self.textLabel.attributedText = NSAttributed(string: "Alex")
}
}
【讨论】:
self.textLabel.attributedText = "Alex" 该行应该至少显示一个警告(如果不是崩溃),因为您正在分配一个字符串,您应该在其中分配一个 NSAttributedString。