我已在我的应用程序中实现了tableView,但是我有大量的数据,我想在分页中显示数据,意味着在1个屏幕中只有10行,然后用户可以在下一个屏幕中分页并显示10行。
分页意味着我想滚动
这是否可以使用任何现有组件?或者我必须创建自定义控制器?如果是这样的话,它的过程是什么?
答案 0 :(得分:1)
var allObjectArray: NSMutableArray = []
var elements: NSMutableArray = []
var currentPage = 0
var nextpage = 0
override func viewDidLoad() {
super.viewDidLoad()
for var i = 0; i <= 500; i++ {
allObjectArray.addObject(i)
}
elements.addObjectsFromArray(allObjectArray.subarrayWithRange(NSMakeRange(0, 20)))
}
override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
println(indexPath.row)
nextpage = elements.count - 5
if indexPath.row == nextpage {
currentPage++
nextpage = elements.count - 5
elements.addObjectsFromArray(allObjectArray.subarrayWithRange(NSMakeRange(currentPage, 20)))
tableView.reloadData()
}
}
答案 1 :(得分:0)
你可以使用部分来实现这样的东西。每页 - 一节 当您添加新的部分 - 更新数据源数组
时override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Potentially incomplete method implementation.
// Return the number of sections.
return _pages.count()
}
现在,每个部分都代表您的网页。对于每个部分,当您需要更新时,您将拥有自己的数据数组(可以将其保存在字典中) - 调用tableView.insertSections(<#sections: NSIndexSet#>, withRowAnimation: <#UITableViewRowAnimation#>)
或者,你可以更新下一个方法 - tableView.insertRowsAtIndexPaths
答案 2 :(得分:0)
首先检查是否设置了tableView的pagingEnabled = true满足您的需求。 UITableView是UIScrollView的子类