gpt4 book ai didi

ios - 更改 UILabel 文本有延迟,但为什么呢?

转载 作者:可可西里 更新时间:2023-10-31 23:58:07 25 4
gpt4 key购买 nike

在我的应用程序中,我想设置一个 UILabel 的文本。文本来自 JSON 对象。我将我的 UILabel 添加到我的 Storyboard,设置 IBOutlet 并调用我的异步方法来获取我的 JSON 对象。在响应方法中,我设置了 UILabel 的文本。但是文本更改需要几秒钟。当响应到来时,我将其打印到控制台。在那里我可以看到,延迟不是来自异步方法。响应来了,我可以在控制台中看到它。等待几秒钟,然后 UIlabel 发生变化。我不明白这种行为,是否有立即刷新 UIlabel 的技巧?

一些代码:

@IBOutlet weak var label_news: UILabel!;

override func viewDidLoad() {
super.viewDidLoad()
self.label_news.text = "CHANGE";
rcall.GetNews_GET_NewsResponse_0(self.NewsResponseHandler);
}

func NewsResponseHandler(resp:NewsResponse!){
self.label_news.text = resp.NewsText;
println(resp.NewsText);
}

抱歉,如果这是一个初学者问题,swift 和 Storyboard对我来说是全新的。

最好的问候

最佳答案

就像 Rob 在评论中所说的那样,所有 UI 更改都需要在主线程上完成。我还没有在 Swift 中实现它,但是 Objective-C 和我假设的 Swift 在下面......

objective-C

dispatch_async(dispatch_get_main_queue(), ^{
self.label_news.text = resp.NewsText;
});

swift :

dispatch_async(dispatch_get_main_queue()) {
self.label_news.text = resp.NewsText;
}

关于ios - 更改 UILabel 文本有延迟,但为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30466905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com