我正在尝试使用两种方式将新数据添加到UITableView
第一种方式
func insertData(appendMessages:[Message]) {
var currentCount = self.messeges.count;
var indxesPath:[NSIndexPath] = [NSIndexPath]()
for msg in appendMessages {
indxesPath.append(NSIndexPath(forRow:currentCount,inSection:0));
self.messeges.append(msg)
currentCount++
}
self.tableView.beginUpdates()
self.tableView.insertRowsAtIndexPaths(indxesPath, withRowAnimation: UITableViewRowAnimation.Bottom)
self.tableView.endUpdates()
}
第二种方式
func insertData(appendMessages:[Message]) {
for msg in appendMessages {
self.messeges.append(msg)
}
self.tableView.reloadData()
}
你看我分开了结果。
使用" reloadData"一切正常,但我想这不好,因为我正在更新所有而不是新内容?
使用" insertRowsAtIndexPaths"我有重复的分隔符,只有当我点击它时才会绘制该行
这很奇怪,我做错了什么......
谢谢
谢伊
答案 0 :(得分:-1)
错误是您应该将计数器初始化为0然后增加它:
func insertData(appendMessages:[Message]) {
var currentCount = 0
var indexesPath = [NSIndexPath]()
for _ in appendMessages {
let index = let index = NSIndexPath(forRow: i, inSection: 0)
indexesPath.append(index)
currentCount++
}
self.tableView.beginUpdates()
self.tableView.insertRowsAtIndexPaths(indexesPath, withRowAnimation: UITableViewRowAnimation.Bottom)
self.tableView.endUpdates()
}