sha*_* te 7 uitableview ios swift
我试图用两种方法将新数据添加到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()
}
Run Code Online (Sandbox Code Playgroud)第二种方式
func insertData(appendMessages:[Message]) {
for msg in appendMessages {
self.messeges.append(msg)
}
self.tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)你看我分开了结果.
当使用"reloadData"时,一切正常,但我想这不好,因为我正在更新所有而不是新内容?
当使用"insertRowsAtIndexPaths"时,我有重复的分隔符,只有当我点击它时才会绘制该行
这很奇怪,我做错了什么......
谢谢
吉文

Mat*_*Car -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()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7734 次 |
| 最近记录: |