这是我使用的代码,所有UI的东西都很好地在主线程上完成:
if(refreshControl.refreshing) { dispatch_async(dispatch_get_global_queue(disPATCH_QUEUE_PRIORITY_DEFAulT,0),^{ [self refreshItems]; dispatch_async(dispatch_get_main_queue(),^{ [refreshControl endRefreshing]; [self.tableVIEw reload]; [self showUpdateInfo]; }); }); }
知道是什么原因引起的吗?
编辑:这是我在代码中创建刷新控件的方法(在vIEwDIDLoad中):
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString: @"Checking for updates…"];[refreshControl addTarget: self action: @selector(refreshOutdatedItems) forControlEvents: UIControlEventValueChanged];self.refreshControl = refreshControl;解决方法 我相信它真的与tableVIEw在UIAlertController呈现之前没有滚动回来有关.我试图设置showUpdateInfo方法的延迟,这似乎有效.我猜当用户只拉一次它需要半秒钟来显示UIAlertController检查是否有帮助.
这是我的代码
- (voID)refreshOutdatedItems{ NSLog(@"refresh"); if (self.refreshControl.refreshing) { dispatch_async(dispatch_get_global_queue(disPATCH_QUEUE_PRIORITY_DEFAulT,^{ for (double i = 0 ; i < 100000000; i++){ }; dispatch_async(dispatch_get_main_queue(),^{ [self.refreshControl endRefreshing]; [self performSelector:@selector(showUpdateInfo) withObject:nil afterDelay:0.5]; }); }); }}
如果有帮助,请告诉我.
总结以上是内存溢出为你收集整理的ios – UIAlertController有时会阻止UIRefreshControl隐藏全部内容,希望文章能够帮你解决ios – UIAlertController有时会阻止UIRefreshControl隐藏所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)