iOS UITableView reloadData问题总结
来源:互联网 发布:逆袭网络剧第二集 编辑:程序博客网 时间:2024/06/07 06:02
iOS UITableView reloadData 方法 无效,或者不执行,导致 TableView 不刷新 原因。
转载 http://www.cnblogs.com/zxykit/p/5664192.html 人家总结的很到位
reloadData不执行有好多总情况
1.没有实现代理,这是最最基本的
_tableView.dataSource=self;
_tableView.delegate=self;
2.reloadData 方法要在主线程执行。好多情况请求远程数据,是在其他线程请求的,所以直接在数据回调处 执行reloadData方法,导致 reloadData无效
3.change the dataSource in the mainThread(改变数据源,也在主线程执行),不然reloadData也会无效,所以,远程得到数据后可以这样,在主线程改变数据,数组的修改也可以放到setList 方法里:
dispatch_async(dispatch_get_main_queue(), ^{
//resultString 是返回的数据
dict = [NSJSONSerializationJSONObjectWithData:[resultString dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableLeaves error:nil];
BOOL resultFlag=[[dictobjectForKey:@"flag"]boolValue];
if(resultFlag){
[selfsetList];
}else{ //失败 提示原因
[SVProgressHUDdismiss];
[GlobalToolshowToast:server_error];
}
});
4.reloadData方法要在包含tabview的 当前对象调用。什么意思呢,举个例子(我犯的错误),在MyViewController 中放置了 TabView 同时引用了 自定义的View myView;myView中调用 [MyViewController setList]:
MyViewController myViewController=[[MyViewController alloc] init];
[myViewController setList]; //setList 方法中调用的reloadData
reloadData 气人的没有执行。
冷静分析了一下 我调用方式有问题,[myViewController setList],myViewController已经是new 的一个新对象 和已经展示的MyViewController没半毛钱关系,所以我需要在 自定义的myView中拿到当前的MyViewController 然后执行[myViewController setList],就可以了;
总结:还是自己基础没有打好,对于指针的引用会犯低级错误,明明是A ViewController中的TabView 我偏偏new了一个B ViewController 执行reloadData,所以没有效果;还有为什么,建议数据源的改变也放到主线程,也是处于数据安全的考虑,子线程 不知道什么时候把数据更换了,UI线程都不知道,有时间多看看基础的知识,会有意外收货
- iOS UITableView reloadData问题总结
- 解决iOS UITableView reloadData 时闪屏的问题
- UITableView判断reloadData结束(iOS)
- UITableView判断reloadData结束(iOS)
- UITableView判断reloadData结束(iOS)
- iOS开发:UITableView判断reloadData结束
- iOS UITableView reloadData刷新的动画
- iOS开发~为UITableView的reloadData方法添加动画
- iOS UITableView reloadData 视图漂移或者闪动解决方法
- 由UITableView reloadData后引起的界面布局问题分析
- UITableView reloadData后,cellForRowAtIndex方法未调用问题
- UITableView刷新数据reLoadData
- UITableView刷新数据reLoadData
- UITableview reloadData 无效
- UITableView刷新数据reLoadData
- UITableView reloadData结束之后
- UITableView判断reloadData结束
- UITableView reloadData 无效一例
- centos7 搭建ha(高可用)hadoop2.7.3集群
- 神经网络中的卷积运算解析
- 开源中国用户分析
- spring整合quart
- 第二章 驱动设计的硬件基础
- iOS UITableView reloadData问题总结
- 关于python扩展库numpy_mkl和scipy的安装
- Go学习笔记(二)
- MySQL
- EL表达式中的运算符
- 容器和实时资源监控的必知要素
- 微服务部署方式的演进
- 电商平台接入第三方支付接口之微信支付接入订单系统
- GIT项目操作实战总结