我想在索引路径的行中添加一个子行,而不使用库。
当我选择一个单元格时,另一个单元格出现在该单元格下方,对每个单元格重复此操作 Ps:它出现的细胞是相同的
我试试这个:
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrayEnum.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var CellTB: UITableViewCell!
let cell = tableView.dequeueReusableCell(withIdentifier: "enumCell", for: indexPath)as! UserFlagTableViewCell
cell.UserflagLabel.text = arrayEnum[indexPath.row].rawValue
CellTB = cell
// let cell1 = tableView.dequeueReusableCell(withIdentifier: "freeTextCell", for: indexPath)as! FreeTextTableViewCell
// cell1.sendButton.addTarget(self, action: Selector("sendUserflagEvent:"), for: .touchUpInside)
// CellTB = cell1
return CellTB
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.tableView.insertRows(at: [IndexPath(row: UserFlagType.userFlagTypes.count-1, section: 0)], with: .automatic)
self.tableView.beginUpdates()
self.tableView.endUpdates()
}
我有1个部分 我有6行
答案 0 :(得分:0)
而不是向您的array.count添加1
self.tableView.insertRows(at: [IndexPath(row: array.count+1, section: 0)], with: .automatic)
向此数组添加另外一个对象,因为如果没有,您将收到一条错误消息,指出您正在尝试获取比数据源数组更多的行。
所以:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
//Add a row here to your array
self.tableView.insertRows(at: [IndexPath(row: array.count - 1, section: 0)], with: .automatic)
self.tableView.beginUpdates()
self.tableView.endUpdates()
}
应该有用。
答案 1 :(得分:0)
嗨,你正在做的只是在arrayEnum中插入新元素然后
tableView.beginUpdates() tableView.insertRows(at:[IndexPath(row:CurrentIndex,section:0)],带:.automatic) tableView.endUpdates()
这里的CurrentIndex在你要在数组中插入一个元素的元素的索引中,它将自动反映在tableview中