ios开发 uitableview怎么关闭uitableview自动刷新

iOS 开发技巧 - 局部刷新UITableView - 简书
iOS 开发技巧 - 局部刷新UITableView
--UITableView想必大家对它都不感觉陌生,估计你的很多APP的页面都有用到它。网络上关于UITableView的文章也不胜其数了,很多也是建议大家多看看的,比如UITableView优化类的。
-- 今天我们聊的是关于UITableView刷新的问题。当然,你第一感觉想到的刷新肯定是用 reloadData 这个方法
刷新UITableView
[self.tableView reloadData];
reloadData这个方法会刷新整个UITableView,可是有时候我们只需要刷新其中一个cell,或者一个section。这个时候再去调用reloadData 这个方法,虽然用户看不出来,但是着实有些浪费资源。这个时候,我们就需要使用局部刷新方法了。
刷新局部cell
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil] withRowAnimation:UITableViewRowAnimationFade];
这样就是局部的刷新了第一个section的第一个cell, 虽然代码看起来多了一点,但确实还是毕竟节省资源的。这也算是对UITableView的一个优化。
刷新局部section
NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndex:0];
[self.tableView reloadSections:indexSet withRowAnimation:UITableViewRowAnimationFade];
很显然,这段代码就是单独刷新第一个section
关于刷新动画
刷新动画还有其他几个动画可以使用
typedef NS_ENUM(NSInteger, UITableViewRowAnimation) {
UITableViewRowAnimationFade,
//淡入淡出
UITableViewRowAnimationRight,
//从右滑入
UITableViewRowAnimationLeft,
//从左滑入
UITableViewRowAnimationTop,
//从上滑入
UITableViewRowAnimationBottom,
//从下滑入
UITableViewRowAnimationNone,
// available in iOS 3.0
UITableViewRowAnimationMiddle,
// available in iOS 3.2.
attempts to keep cell centered in the space it will/did occupy
UITableViewRowAnimationAutomatic = 100
// available in iOS 5.0.
chooses an appropriate animation style for you
学到就是赚到
学习并记录,前进并成长.popViewControllerAnimated 后,对页面内UITableView 内数据刷新
来源:博客园
popViewControllerAnimated后, 这时它不执行viewDidLoad, 所以不能及时对viewControler及时刷新,此时对该页面进行操作可以调用 viewWillAppear:( BOOL) (pop页面后会被调用) 对于新加载页面的 UITableView 控件数据刷新:需要调用 reloadData //_atableView UITableView的实例 - (void) viewWillAppear :(BOOL)animated{
[super viewWillAppear:animated];
[_atableView reloadData ];}
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
RT,在做蓝牙OBD的项目,其中有需求是从ECU中读取数据流,读取到一条就马上刷新TableView,于是我就写成这样了
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//获取数据流个数x
for (int i = 0; i&x; i++)
//循环读取数据
NSData * data = getData(i);
[self.fcArray addObject:data];
dispatch_async(dispatch_get_main_queue(), ^{
//读取到数据就马上reloadData
[self.tableView reloadData];
整个过程就这样,显示什么都没问题,但是我发现在他读取数据的时候,我去滚动tableView的话,tableView滚动会表现得卡卡的,然后经常是好像根本没有滚动到似的,请问这是什么原因
好久没来,更新下答案
首先谢谢大家的帮忙,我这个问题已经解决了,我是设置数据刷新前判断tableView是否在滚动,如果是的话就等等再刷新
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
把reloadData从for循环中移出来,我觉得是这里的原因
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你不能读一条就刷新一条,这样势必会卡。
可以这样处理:读一条就把数据更新,但是并不要reloadData;另外单开一个定时器,比如3秒钟reload一次。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
insertRowsAtIndexPaths: withRowAnimation 应该是你需要的
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
哥们,我现在有个项目也是和你这个一模一样的,就是通过蓝牙获取数据,回一条数据就显示一条,往上拖动tableView,又是逐一显示,请问可以指教一下不,感激不尽!
同步到新浪微博
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App2015年4月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第三2015年3月 移动开发大版内专家分月排行榜第三2014年10月 移动开发大版内专家分月排行榜第三
2015年4月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第三2015年3月 移动开发大版内专家分月排行榜第三2014年10月 移动开发大版内专家分月排行榜第三
2015年4月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第三2015年3月 移动开发大版内专家分月排行榜第三2014年10月 移动开发大版内专家分月排行榜第三
2015年4月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第三2015年3月 移动开发大版内专家分月排行榜第三2014年10月 移动开发大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。}

我要回帖

更多关于 电脑自动刷新怎么关闭 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信