我有一个UITableViewCell
,里面有一个按钮。 (通过IB制作)。
现在我想做的是:
UITableViewCell
时,我想触发segue
。UIButton
时,我想触发操作。 然而,实际发生的情况是按下按钮时会选择UITableViewCell
,而不是所需的结果。
是否有办法同时启用两个操作?
感谢。
- 编辑
我希望能够选择表格单元格,并且能够按下按钮。所以禁用选择是行不通的。
- 根据要求,cellForRowAt:
方法的代码
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: PersonTableViewCell.identifier, for: indexPath) as! PersonTableViewCell
if ( indexPath.row < (self.searchResult.count)) {
cell.configure(searchResult[indexPath.row])
}
return cell
}
然后,在cell
的configure函数内部,在触发以下函数的按钮上创建UITapGestureRecognizer
:
func follow(profile: User) {
self.followButton.isSelected = !self.followButton.isSelected
profile.toggleFollow(callback: { _ in })
}
答案 0 :(得分:2)
确保细胞内按钮的以下几点。
显示cellForRow(atIndex...
和您的表格视图单元类的代码,以获得准确的解决方案。
以下是示例代码:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! CustomCell
cell.yourbutton.isUserInteractionEnabled = true
cell.yourbutton.addTarget(self, action: #selector(self.buttonTapped(sender:)), for: UIControlEvents.touchUpInside)
//cell.bringSubview(toFront: cell.yourbutton)
//cell.contentView.bringSubview(toFront: cell.yourbutton)
return cell
}
@objc func buttonTapped(sender: UIButton) {
print("button tapped")
}
编辑:Button有自己的控制操作/事件处理程序。您可能不需要添加UITapGestureRecognizer
。