如何重新加载UITableView插入的项目

时间:2016-01-26 01:21:50

标签: ios swift uitableview

我正在研究如何为UITableView加载日期(仅插入项目)。

我正在使用一个名为[UIScrollView-InfiniteScroll]的库[1]

[1]:https://github.com/pronebird/UIScrollView-InfiniteScroll用于无限滚动,当我添加新项目时,我只想要加载新项目。

当我致电tableView.reloadData()时,它正在加载所有TableView

这是我的完整代码:

 tableView.infiniteScrollIndicatorStyle = .Gray

        tableView.addInfiniteScrollWithHandler { (scrollView) -> Void in

            self.loaddata(10, skip: self.posts.count)


        }

func loaddata(limit:Int, skip:Int) {

        let query = PFQuery(className: "Feed")
        query.whereKey("username", containedIn: self.phones)
        query.limit = limit
        query.skip = skip
        query.includeKey("from")
        query.addDescendingOrder("createdAt")
        query.findObjectsInBackgroundWithBlock {
            (objects: [PFObject]?, error: NSError?) -> Void in

            if error == nil {
                if let objects = objects {
                    if objects.isEmpty {

                    }
                    else {
                        print(objects.count)
                        for object in objects {
                            let Date = object.createdAt
                            let post = Post(time: Date!)
                            let Type = object.objectForKey("type") as? String

                            post.DoILike = true
                            post.Post_message = object.objectForKey("Text") as? String
                            post.comments = object.objectForKey("commentaires") as? Int
                            post.likes = object.objectForKey("likes") as? Int

                            self.posts.append(post)

                        }
                        self.tableView.reloadData()
                        self.tableView.finishInfiniteScroll()
                    }

                }

            } else {


            }
        }


    }

1 个答案:

答案 0 :(得分:2)

您需要的是

let indexPaths = ... //indexes of added rows
self.tableView.beginUpdates()
self.tableView.insertRowsAtIndexPaths(indexPaths, withRowAnimation: UITableViewRowAnimation.None)
self.tableView.endUpdates()