swiftuitableviewscrollpagination

Load more for UITableView in Swift


I have mad UITableView in swift for iOS and my Array content more then 500 elements.

How can I make page for the UITableView for Example:

Once the user scroll for the latest Cell the app load more fro the 500 elements and so on.


Solution

  • To answer your question made a small test! One possible solution to this problem is to make another array and add it to the data that you want to display in the table and load the data to the same that you want to load! Loading data will willDisplayCell forRowAtIndexPath

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

    test project

    https://drive.google.com/file/d/0B-CqajDlBoGHSE1OcjFoZWJxUTg/view?usp=sharing