5

私はこれをcellForRowAtIndexPathの中に持っています

   cell.plusBut.tag = indexPath.row
   cell.plusBut.addTarget(self, action: "plusHit:", forControlEvents: UIControlEvents.TouchUpInside)

そして、この関数の外側:

func plusHit(sender: UIButton!){
    buildings[sender.tag].something = somethingElse
}

indexPath.row and 、または代替品を送信することは可能ですindexPath.sectionか??

ありがとう!

編集

私は次のようにアプローチしました:

私のカスタムボタン

class MyButton: UIButton{

    var myRow: Int = 0
    var mySection: Int = 0

}

マイ カスタム セル

class NewsCell: UITableViewCell{

    @IBOutlet weak var greenLike: MyButton!

CellForRowAtIndexPath 内

    cell.greenLike.myRow = indexPath.row

この行でエラーが発生します。

4

7 に答える 7

4

のサブクラスをUIButton作成し、その中に追加のプロパティ セクションを作成できます。そして、そのクラスをセルボタンに使用できます。行についても同じことができます。

サブクラス化後に考えられるいくつかの方法を次に示しますUIButton

cell.plusBut.tag = indexPath.row
cell.plusBut.section = indexPath.section

または

cell.plusBut.row = indexPath.row
cell.plusBut.section = indexPath.section

または

cell.plusBut.indexPath = indexPath

あなたに合ったものを選んでください。

于 2015-09-02T10:47:11.307 に答える
0

別のアプローチを提案します。サブクラスのソリューションは好きではありません。ボタンがその位置を認識すべきではないと思います。辞書を使用してボタンを IndexPath に変換しない理由

// First initialize the lookup table
var buttonPositions = [UIButton: NSIndexPath]()

// add each button to the lookup table
let b = UIButton()
let path = NSIndexPath(forItem: 1, inSection: 1)


buttonPositions[b] = path

// Looking it up works like this
buttonPostions[activeButton]?.row  
于 2015-09-02T12:31:06.300 に答える