我将 NSFetchedResultsController 与 UITableView 一起使用。我需要像iMessage那样进行聊天,从上到下依次排序消息。我需要滚动到我的 UITableView 底部以显示上一条消息
tableView.scrollToRowAtIndexPath(lastMessageIndexPath, atScrollPosition: UITableViewScrollPosition.None, animated: false)
但是当我滚动 UITableView 时,方法 tableView:cellForRowAtIndexPath:调用fetchedResultsController中的所有消息。我认为因为这个,并且有一个非常长的开放viewController
请帮我解决这个问题,并加速打开viewController
答案 0 :(得分:1)
不要滚动,只需设置内容偏移而不动画。至少需要确定每个单元的高度,但不需要为每一行加载单元本身。
请注意,以这种方式显示的大多数应用都不会在历史记录中显示所有旧消息,它们只会有几页,如果向上滚动太远,他们需要去加载那些较旧的消息。这种方法限制并加载问题。