gpt4 book ai didi

objective-c - 在后台更新 UITableView 的数据会中断动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:19:40 24 4
gpt4 key购买 nike

我有一个 UITableViewController,它应该在后台获取数据,然后刷新 UITableView。但是,当我在后台运行更新方法时,它会破坏整个应用程序中的所有过渡动画(将 View Controller 推送到导航堆栈时的幻灯片)。奇怪的是,完全相同的模型在其他类中的工作方式与本类非常相似。这是我用于后台更新的调用:

[self performSelectorInBackground:@selector(updateData) withObject:nil];

然而这是有效的,但当然不是在后台完成的:

[self updateData];

最后是正在运行的方法:

- (void)updateData{
updating = YES;
[progress show:YES];
dataSource = [[NetworkHandler sharedInstance:self] getRaces];
[progress hide:YES];
updating = NO;
[self.tableView reloadData];
}

更新标志绝不是对信号量的尝试,只是一种确保 View 不会更新两次的方法,以防用户在 View 之间来回切换。 ;)

最佳答案

[self.tableView reloadData]; 看起来可能会导致某种线程问题。所有对 UI 的更新都应该在主线程中完成。所以这应该有效:

[self.tableView performSelectorOnMainThread:@selector(reloadData)];

关于objective-c - 在后台更新 UITableView 的数据会中断动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10831313/

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