テーブルビューでボタンを処理する方法が見つかりません。 OK、私は100コイン、50コインのようないくつかの値で表示されているtableviewを持って...そして右側にボタンがあります。だから問題はあなたがそのボタンを押したときに、そのボタンはあなたが特定の値のボタンをタップしたことを知っていますか?いくつかの場所とコードを投稿できますか?プロトタイプのプロトタイプセルのボタンをスウィフト2のテーブルビューで処理する
ボタンは製品
テーブルビューでボタンを処理する方法が見つかりません。 OK、私は100コイン、50コインのようないくつかの値で表示されているtableviewを持って...そして右側にボタンがあります。だから問題はあなたがそのボタンを押したときに、そのボタンはあなたが特定の値のボタンをタップしたことを知っていますか?いくつかの場所とコードを投稿できますか?プロトタイプのプロトタイプセルのボタンをスウィフト2のテーブルビューで処理する
ボタンは製品
あなたがクリックされたボタンのどのセルで見つける上記の方法のindexPath
から
func btnClickAction(sender: UIButton)
{
var superView = sender.superview
while superView?.isKindOfClass(UITableViewCell) == false
{
superView = superView?.superview
}
var cell = superView as! UITableViewCell
var indexPath = self.tableView.indexPathForCell(cell)! as NSIndexPath
}
すなわち、あなたのコントローラ内の1つのメソッドを作成を購入するためのメッセージを実行する必要があります。あなたは上記の方法にあなたのボタンのターゲットを追加する必要があり、あなたのcellForRowAtIndexPath
で
が
btn.addTarget(self, action: "btnClickAction", forControlEvents: UIControlEvents.TouchDragInside)
をすなわち私は、これは一種の後期である知っているが、私は本当にこのソリューションのように私はそれが誰かを役に立てば幸い!これは@Jatin Chauhanの答えですが更新されました。あなたがここにIBActionにあなたのXIBやストーリーボードからボタンを接続することができ、これを使用しスウィフト3
@IBAction func actionFromButtonPress(_ sender: Any) {
var superView = (sender as AnyObject).superview
while type(of: (superView!)!) != UITableViewCell.self
{
superView = (superView as AnyObject).superview
}
let cell = superView as! UITableViewCell
let indexPath = self.tableView.indexPath(for: cell)! as NSIndexPath
let correspondingDataInDataSource = self.tableViewDataSource[indexPath.row]
self.tableView.reloadData()
}
。
注:カスタムのUITableViewCellを持っている場合は、私が行ったようにあなたの代わりに「YourCustomTableViewCellClass.self」に「UITableViewCell.self」が、するタイプを比較するべきではありません。
注2:whileループでは、2回アンラップする必要があることに注意してください。私がそれを印刷したとき、それはオプショナルでオプションであり、この方法でそれをアンラップすることによって、タイプは互いに正確に比較することができます。
ありがとうございます。私は人のゲーム-2質問の理由を知りません –