让我说我有一个 firstArray 的PFObject [](来自Parse SDK),它有7个项目,我在firstArray中创建了一个secondArray:
secondArray = firstArray
然后我调用数据库查询来检索更新的数据,它们现在是firstArray中的10个项目。
我这样做:
if firstArray.count > secondArray.count {
let lastItems = firstArray.count - secondArray.count
// lastItems = 3
}
如何按照特定顺序将这3个最后的项目附加到 secondArray 的末尾?
secondArray追加第8项
secondArray追加第9项
secondArray追加第10项
我不想reloadData(),我只想像WhatsApp那样将最后3行添加到我的TableView中,例如,否则TableView将滚动到顶部。
谢谢!
答案 0 :(得分:2)
首先将数据附加到第二个数组
secondArray.append(firstArray [指数])
然后
self.yourTableView.beginUpdates()
var insertedIndexPaths = [indexpath_where_you_want_insertData]
self.yourTableView.insertRowsAtIndexPaths(insertedIndexPaths, withRowAnimation: .Fade)
self.yourTableView.endUpdates()
答案 1 :(得分:1)
如果firstArray和secondArray相同 你可以做到
secondArray = firstArray
如果您已更新secondArray并且只想附加新数据
var counter = 0
while secondArray.count != firstArrayCount {
secondArray.append(firstArray[firstArray.count+counter])
counter += 1
//insert new row in table
}
答案 2 :(得分:1)
由于你要求一种方法来附加它,这应该可行。
if firstArray.count > secondArray.count {
for i in secondArray.count..<firstArray.count {
secondArray.append(firstArray[i])
}
}
希望这有帮助!
答案 3 :(得分:0)
如果您希望更新表视图而不重新加载它,则必须使用 func insertRows(在indexPaths:[IndexPath],带动画:UITableViewRowAnimation) 您应该查看此文档以更好地理解如何实现您的任务: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/TableView_iPhone/ManageInsertDeleteRow/ManageInsertDeleteRow.html