如何在tableView中进行分页?

时间:2015-06-26 11:00:40

标签: ios swift cocoa-touch

我已在我的应用程序中实现了tableView,但是我有大量的数据,我想在分页中显示数据,意味着在1个屏幕中只有10行,然后用户可以在下一个屏幕中分页并显示10行。

分页意味着我想滚动

这是否可以使用任何现有组件?或者我必须创建自定义控制器?如果是这样的话,它的过程是什么?

enter image description here

3 个答案:

答案 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()
        }
    }

下载sample code from here.

答案 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的子类