2017-08-17 96 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