gpt4 book ai didi

ios - UIScrollView setContentOffset :animated must be used from main thread only

转载 作者:行者123 更新时间:2023-11-29 05:57:17 27 4
gpt4 key购买 nike

我正在标签栏中执行一个操作,即(当点击按钮两次时)它应该执行,

[root.FeedTableView setContentOffset:CGPointZero animated:YES];

但我无法在其中执行它,

dispatch_async(dispatch_get_main_queue(), ^{  
});

因为什么也没发生,所以我尝试使用,

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
});

并且工作正常,但在这种情况下会弹出线程运行时错误。

检查下面的代码并提出补救措施,以解决发生在

的线程问题

[root.FeedTableView setContentOffset:CGPointZero animated:YES];

(void)processBtn:(UIButton *)sender {

NSLog(@"sender:%li",(long)sender.tag);

if (self.selectedViewController==self.viewControllers[0] && sender.tag==1){

NewsFeedViewController * root = [newsFeedSceneController.viewControllers firstObject];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{


[root.FeedTableView setContentOffset:CGPointZero animated:YES];

dispatch_async(dispatch_get_main_queue(), ^{

if(!root.isUpdatingTableView)

[root.refreshControl endRefreshing];

});

});
}

最佳答案

正如 Jon Rose 所说, ScrollView 行:

[root.FeedTableView setContentOffset:CGPointZero 动画:YES];

和 UIrefresh 控制线:

[root.refreshControl endRefreshing]; 是主要冲突。

需要做的就是删除 UIrefreshcontrol 行并添加非 UI 相关行[root RefreshView];

关于ios - UIScrollView setContentOffset :animated must be used from main thread only,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55021631/

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