在UITableViewCell中单击获取按钮我有一个视图控制器,具有表格视图和表格单元格模板的单独笔尖。单元格模板有一些按钮。我想访问按钮单击以及在我已定义表视图的视图控制器内单击的单元格的索引。所以,我有ViewController.h和ViewController.m在那里我有UITableView和TableTemplate.h,TableTemplate.m和TableTemplate.xib在那里我有定义的笔尖。我想要单元格索引的按钮单击事件ViewController.m。有什么帮助,我该怎么办?
3 回答
慕斯王
TA贡献1864条经验 获得超2个赞
1)在您的cellForRowAtIndexPath:
方法中,将按钮标记指定为索引:
cell.yourbutton.tag = indexPath.row;
2)为按钮添加目标和操作,如下所示:
[cell.yourbutton addTarget:self action:@selector(yourButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
3)基于索引的代码操作如下ViewControler
:
-(void)yourButtonClicked:(UIButton*)sender{ if (sender.tag == 0) { // Your code here }}
多个部分的更新:
您可以检查此链接以检测表格视图中的按钮单击多行和部分。
胡子哥哥
TA贡献1825条经验 获得超6个赞
我采取了不同的方法,而不是玩标签。为我的UITableViewCell子类(OptionButtonsCell)制作了委托,并添加了一个indexPath var。从我在故事板中的按钮,我将@IBAction连接到OptionButtonsCell,然后我向任何感兴趣的人发送带有正确indexPath的委托方法。在索引路径的单元格中我设置当前indexPath并且它工作:)
让代码说明一切:
Swift 3 Xcode 8
OptionButtonsTableViewCell.swift
import UIKitprotocol OptionButtonsDelegate{ func closeFriendsTapped(at index:IndexPath)}class OptionButtonsTableViewCell: UITableViewCell { var delegate:OptionButtonsDelegate! @IBOutlet weak var closeFriendsBtn: UIButton! var indexPath:IndexPath! @IBAction func closeFriendsAction(_ sender: UIButton) { self.delegate?.closeFriendsTapped(at: indexPath) }}
MyTableViewController.swift
class MyTableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, OptionButtonsDelegate {...func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "optionCell") as! OptionButtonsTableViewCell cell.delegate = self cell.indexPath = indexPath return cell }func closeFriendsTapped(at index: IndexPath) { print("button tapped at index:\(index)")}
- 3 回答
- 0 关注
- 595 浏览
添加回答
举报
0/150
提交
取消