两个表必须位于一个视图控制器中,例如通过段控制进行切换。数据是无限的,从核心数据中获取。我看到三种解决方案:如何更好地使用两个“选项卡”实现UITableView?
1)创建两个对象UITableView
并将它们填充到共享数据源函数中;保留其中一个隐藏的表格
2)创建两个视图控制器容器,嵌入在主视图控制器中,并执行完全分离的数据源方法;保持容器的一个隐藏
3)只使用一个表视图对象,在需要时重新加载数据,提供偏移节约
需要你的意见。哪种解决方案会更快和/或更易读和正确?
更新
让我尝试实现第三个选择:
var tableViewOffsets = [Int: CGPoint]()
func segmentValueChanged(sender: UISegmentedControl) {
tableViewOffsets[tableView.tag] = tableView.contentOffset
tableView.tag = sender.selectedSegmentIndex
tableView.reloadData()
if let savedOffset = tableViewOffsets[tableView.tag] {
tableView.setContentOffset(savedOffset, animated: false)
}
}
func tableView_dataSourceMethodsTemplate(tableView: UITableView, ...) {
if tableView.tag == 0 {
//perform data source code for first tab
} else {
//perform data source code for second tab
}
}
第三个选择预订购是有用的。速度将与其他选项相同。 –