我有一个tableview,根据数组中的项目数(exerciseTableCells)加载部分的数量。然后根据该数组中的项目数(exercisesSetsTableCells)为每个部分加载行数。这两个数组如下:
var exercisesSetsTableCells: [[String]] = [["1","2","3"],["1","2"],["1","2","3","4"],["1","2"],["1","2","3","4"]]
var exercisesTableCells: [String] = ["Bench","Squat","Pull Ups","Curls","Sit Ups"]
我在每个部分的页脚中都有一个按钮,我只想在表格的那一部分添加一行(或者根据按钮所在部分的数组索引)
我的表格如下,
答案 0 :(得分:1)
您需要同时更新表和数据源(那些数组)。
类似的东西:
tableView.beginUpdates()
exercisesTableCells.appendElement("new item")
tableView.insertRowsAtIndexPaths([NSIndexPath(forRow: 0, inSection: 0)], withRowAnimation: .Automatic) // of course, change the indexpath to the correct one
tableView.endUpdates()
更新数组并插入单元格,并将它们包装在beginUpdates()和endUpdates()之间。
其他选项只是reloadData ...
答案 1 :(得分:1)
您需要使用点击按钮子视图的层次结构来获取索引路径:
func clickAction(_ sender: AnyObject) {
let button = sender as? UIButton
let cell = button?.superview?.superview as? UITableViewCell
let indexPath = tblview.indexPath(for: cell!)
let newArray = exercisesSetsTableCells.object(at: (indexPath?.row)!) as! NSMutableArray
newArray.add("new data");
exercisesSetsTableCells .replaceObject(at: (indexPath?.row)!, with: newArray);
//reload your tableview here
}