我正在研究如何为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 {
}
}
}
答案 0 :(得分:2)
您需要的是
let indexPaths = ... //indexes of added rows
self.tableView.beginUpdates()
self.tableView.insertRowsAtIndexPaths(indexPaths, withRowAnimation: UITableViewRowAnimation.None)
self.tableView.endUpdates()