如何从FooterInSection中的Button向UITableView中的特定部分添加行

时间:2016-11-03 09:37:33

标签: ios swift xcode

我有一个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"]

我在每个部分的页脚中都有一个按钮,我只想在表格的那一部分添加一行(或者根据按钮所在部分的数组索引)

我的表格如下,

enter image description here

2 个答案:

答案 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 

 }