【发布时间】:2010-12-03 03:33:16
【问题描述】:
看看 Music.app(或 iPod.app)。根专辑视图有一个“所有歌曲”行。根歌曲视图有一个“随机播放”行。根播放列表视图有一个“添加播放列表...”行。静态数据与(大概)Core Data 数据混合在同一个 UITableView 中。我想知道 Apple 是如何做到这一点的。
我尝试了两种不同的方法,都失败了。与 Music.app 一样,我的视图在 tableHeaderView 中也有一个 UISeachBar。我的第一次尝试跟踪我有多少“静态”行,并调整了提供给需要节和行信息的各种 UITableView 和 NSFetchedResultsController 方法的 indexPath。一切都很好,直到我实现了 NSFetchedResultsControllerDelegate 方法来允许创建、编辑和删除。 insertRowsAtIndexPaths:withRowAnimation: 方法(和类似方法)在我调整后的 indexPaths 上被绊倒了。默认的 indexPaths 也不能正常工作。
我的第二次尝试是在我的主 UITableView 的 tableHeaderView 中嵌套另一个 UITableView 以用于静态行(并将 UISeachBar 容纳在它自己的 tableHeaderView 中)。这种方法甚至没有进入可编辑阶段。 UISearchBar 最终被根 UITableView 的 sectionIndex 清理器重叠,并且在滚动短列表时不再向上滑动到 UINavigationBar 后面。
因此,我不是诊断我的具体问题,而是寻求有关 Apple 如何实现这一目标的建议。他们是否可以一次获取数据,将其缓存在 NSArray 中并构建包含静态和核心数据行的部分和行的嵌套 NSArray?
【问题讨论】:
-
当然,一旦您公开发布内容...第二种方法重新开始运行,将 tableHeaderView 设置为包含 UISeachBar 和静态 UITableView 的 UIView。我们会看看我能走多远。仍然欢迎提出建议。
标签: objective-c core-data ios