UITableViewCell的RemoveGestureRecognizer方法在Swift,ios8,Xcode 7中不起作用

时间:2015-12-29 09:41:19

标签: swift uitableview ios8 xcode7 uitapgesturerecognizer

我的UIViewController中有一个带静态单元格和分组样式的UITableView。我添加了一个UIGestureRecognizer,我可以解除键盘,但我想除了UIGestureRecognizer之外的几个UITableViewCells,因为它们在被选中时具有功能。

我的代码:

我可以在代码中的任何地方使用它的类变量:

    var tap:UITapGestureRecognizer = UITapGestureRecognizer()

我的viewDidLoad()方法:

override func viewDidLoad() {
    super.viewDidLoad()

    self.tap = UITapGestureRecognizer(target: self, action: "DismissKeyboard")
    tableView.addGestureRecognizer(tap)
}

UIGestureRecognizer的行动:

func DismissKeyboard()
{
    print("is here")
    if(self.keyboardIsVisible)
    {
        view.endEditing(true)
        self.refreshTableView()
    }
}

我删除了覆盖功能cellForRowAtIndexPath中一个单元格的Gesture Recognizer:

 cell.removeGestureRecognizer(self.tap)

但是当我点击这个单元格时,它仍会进入DismissKeyboard - Action ...

2 个答案:

答案 0 :(得分:0)

您将UITapGesgureRecognizer添加到tableView,然后尝试从de cell中删除。尝试使用tableView.removeGestureRecognizer(self.tap)

答案 1 :(得分:0)

而不是在TableView Cell或TableView上添加Tap Gesture。您可以在UITableViewCell上添加自定义UIButton并向其添加目标。然后,您可以禁用表视图的didSelectRowatIndexPath事件。您可以在按钮点击事件上编写代码。