2017-08-17 97 views
1

用下面的代码,我得到了点击的按钮TableView中indexPath:IndexPath斯威夫特的TableView点击列

@IBAction func btnClick(_ sender: UIButton) { 
    let hitPoint = sender.convert(CGPoint.zero, to: self.tableView) 
    if let indexPath = self.tableView.indexPathForRow(at: hitPoint){ 
     print(indexPath) 
     print(indexPath.row) 
    } 
} 

第一个打印是[3, 0]当我点击位于3排,我得到了0,但我需要其他价值。这种情况下的3

+0

宁在对的cellForRowAtIndexPath分配indexpath.row到Button.tag然后使用tableView.indexPathForRow获得该单元格上面的方法你提到cpu很贵。 –

+1

看来你想要的是'indexPath.section' –

+0

谢谢@Sam_M !!!! – user1469734

回答

1

indexPath返回[段,行。

如果您要访问节(你称为列的东西), 使用indexPath.section

0

最好的方法是处理单元格中的按钮单击,然后通过闭包或自定义委托方法将单元格传递到tableView控制器,然后找出单元格的indexPath。

UPD。

只是试图让indexPath.section

+0

为什么?它确实返回了正确的值,但我想访问返回数组中的第一项,但得到了第二项。 – user1469734

+0

@ user1469734因为它是最好的做法:)也许你应该谷歌一些关于iOS架构的文章(例如,干净的拱门)来理解这一点。 – pacification

+0

如何做你在说什么? – user1469734