2017-09-28 1 views
0

私はセクション内でtableview divideを持っています。セルのボタンをタップすると、行とセクションの数を表示する必要があります。どのように私はこれを得ることができますか?セルのボタンがタップされていると、どのようにindexPath.sectionとindexPath.rowを取得しますか?

+0

@vadian、そのセルから行とセクションを取得する あなたはvadianのリンクでそのクロージャーを使用できます。さらに、indexpathをパラメータとして渡すこともできますo fクロージャ –

+0

リンクされた質問は、セル内のボタンがタップされたときにindexPath.srowとindexPath.rowを取得する方法を説明しています*。 – vadian

答えて

0

tableView:didSelectRowAtIndexPath:メソッドを実装します。呼び出されると、セクションと行のプロパティを持つNSIndexPathが渡されます。

このメソッドは、tableviewセルが押されるたびに呼び出されます。インデックスパスは、押されたセルのインデックスパスになります。

https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614877-tableview

EDIT:

私は質問を読み違えます。ボタンを押すと、ボタンのスーパービューにアクセスして、ボタンからTableViewCellを取得します。次に、TableViewのindexPathForCellメソッドを使用して、ボタンのindexPathを取得します。

0

セル内にindexPathを格納し、ボタンを押したときに取り戻します。形態としては私が理解質問は、それはそれは程度であるセル内のボタンを検出ではないということです

テーブルビューコントローラ

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "custom") as! CustomTableCell 
    cell.indexPath = indexPath 

    return cell 
} 

カスタムテーブルセル

class CustomTableCell: UITableViewCell { 
    var indexPath: IndexPath! 

    @IBAction func buttonPressed() { 
     print(indexPath) 
    } 
} 
+0

インデックスパスがtableView:didSelectCellAtIndexPathデリゲートメソッドに渡されたときに、インデックスパスをカスタムテーブルビューセルに格納する必要はありません。 – tww0003

+0

OPは、**ボタン**が押されたときに 'indexPath'を取得したいのであって、セルそのものではないことに注意してください。 – the4kman

+0

ああ、私は質問を誤解しました。カスタムセルを作成する必要はありません。ボタンを押すと、ボタンのスーパービュープロパティでtableviewセルを取得します。次に、tableviewのindexPathForCellメソッドを使用してインデックスパスを取得します。 – tww0003

関連する問題