gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:29:15 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/36765203/

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