我正在寻找一些技术指导,也许是教程。
我不得不在表格 View 中处理我预期的更多行/单元格。
我已经开发/发布了 View /屏幕,但是如果有很多记录,它会很慢,直到即将发布的版本才出现这种情况。
我想我需要在我的 sqlite 查询中使用限制/偏移量,但是我的表等中有部分。
我还必须创建一个单元格/行,用户可以在其中点击以显示接下来的 50 条记录。
这一定是一个很常见的问题,之前肯定已经讨论过了。
我的问题是开发此功能所需的时间。我对项目的投入太深,无法转换为核心数据
最佳答案
也许 Core Data 是一个有效的解决方案。如果您使用与 UITableView
链接的 NSfetchedResultController
(及其 NSFetchRequest
),项目将为您管理。
但是如果你不想使用 Core Data,这里有一个简单的建议:
在模型中加载一堆数据(比如前 50 项)。加载后,该模型用于在表格中显示数据。当用户到达表格末尾时,我会在该表格 View 的页 footer 分显示“显示更多”标签。然后如果用户点击它,再次加载数据(其他 50 项),将它们缓存在模型中并重新加载表,等等。
如果您有一个部分和多个行,则可以应用此技巧。
希望对您有所帮助。
编辑
如果您不想使用 Core Data,我会执行以下操作(一些准则)。
使用LIMIT SQL语句来限制结果的数量(例如20)。
在您的 .h 中创建一个偏移量变量,例如:
NSUInteger offset;
和类似的方法:
- (NSArray*)fecthMore;
然后在 .m 中,像下面这样实现该方法:
- (NSArray*)fecthMore
{
// using the offset to retrieve the array of results (e.g resultArray)
// the first time you grab the first 20 elements (0-19), the second time the next 20 (20-39)
// and so on
offeset += [resultArray count]; // next 20
return resultArray;
}
每次模型返回数组更新。
关于objective-c - Obj-C、UITableView UI 改进以处理大量记录,也就是点击下一步获取更多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9453313/