作者kusowan (kuso)
看板MacDev
标题Re: [问题] 有关UITableView与Sqlite效能问题...
时间Mon Feb 6 14:12:35 2012
我觉得这种情况并非您的数据库太大,而是FMResult返回的数据量太大
当用while去读取的时候iOS要复制每个object导致大量时耗
而android不用复制所以快很多
这种情况就连apple本身也没什麽好的解决方法
看看App store的search界面,以及众多的滑动下拉菜单,很明显,不
要一次显示那麽多才是王道
不知道为什麽您要分别计算每个UITableCell的高度,如果是我的话,会
用固定形态的UITableCell分页显示...坏处是会降低一些用户体验
流行的设计是分页显示一个超出显示范围的UITable,这样滑动手势仍可
起作用;然後在到达底部时用
下拉显示更多这种提示来加载下一页的数
据。也就是说,将您的30秒延迟分隔成10个3秒,这样既提高了效能,又
不失用户体验
--
Come with an evil heart
Don't fear to become dark
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.82.61
1F:推 chengreg:K大果然很有经验,我切确的问题就是While造成时耗, 02/06 14:50
2F:→ chengreg:但是基於公司UI的要求必然要调整动态高度,所以不得不 02/06 14:50
3F:→ chengreg:而且PM强烈要求不可以卷到最後才继续读取资料..T_T哎.. 02/06 14:51
4F:→ chengreg:而且PM还说,你看.人家Android就那磨快!!iphone不是更好? 02/06 14:56
5F:推 Blueshiva:不要卷到最後,可以卷到剩20/50笔再读,这样也可以骗过 02/06 17:21
6F:→ Blueshiva:去啊 02/06 17:21
7F:推 chengreg:请问B大,小弟的UITableView需要用到动态高度调整,也就是 02/06 17:52
8F:→ chengreg:说会在heightForRowAtIndexPath内调整cell高度,但是若 02/06 17:53
9F:→ chengreg:NSArray变动後(+20笔),就要去呼叫reloadData,而只要呼叫 02/06 17:54
10F:→ chengreg:reloadData则NSArray就会从0开始跑一次,高度那边会更久.. 02/06 17:54
11F:→ chengreg:不知道B大是否有解决方案...T_T 02/06 17:55
12F:→ popcorny:你不是每个item都存成Dictionary吗? 算过的加个rowHeight 02/06 19:18
13F:→ popcorny:的资料代表算过不就解决了 02/06 19:18
14F:→ lunaglyph:新增的用insert row 就好了,不用 reload table吧 02/11 13:32