Swift - 向后滚动

时间:2015-07-13 09:47:12

标签: ios xcode macos swift uitableview

我在查看桌面时遇到问题。当一直到表的末尾,并且再次向上时,表内容不会立即加载..

这是代码:

enter image description here

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

好的,我们解决了这个问题。

问题在于此代码:

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    if indexPath.row > 22 && !isAll && indexPath.row == signArray.count-1{
        //This makes the table load inspections in chunks of 24 meaning alot of smaller DB calls instead of one big one and therefore a better user experience since it reduces load times.
        signArray = signArray + appDelegate.dbInterface.findInspectionsBySeriesID(signArray[0].seriesID, offset: numberOfLoads*24, limit: 24)
        numberOfLoads++
        tableView.reloadData()
    }
}

这里的逻辑有点缺陷,无论是否有新数据,表都被重新加载。让上面的表格单元格空白,它仍然很奇怪,只有在没有数据可用时才会发生,但将其更改为:

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    if indexPath.row > 22 && !isAll && indexPath.row == signArray.count-1{
        //This makes the table load inspections in chunks of 24 meaning alot of smaller DB calls instead of one big one and therefore a better user experience since it reduces load times.
        var newInspections = appDelegate.dbInterface.findInspectionsBySeriesID(signArray[0].seriesID, offset: numberOfLoads*24, limit: 24)
        if !newInspections.isEmpty{
            signArray = signArray + newInspections
            numberOfLoads++
            tableView.reloadData()
        }
    }
}

修复了问题。