【问题标题】:UITableViewCell's RemoveGestureRecognizer method doesn't work in Swift, ios8, Xcode 7UITableViewCell 的 RemoveGestureRecognizer 方法在 Swift、ios8、Xcode 7 中不起作用
【发布时间】:2015-12-29 09:41:19
【问题描述】:

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

我的代码:

类 - 我可以在代码中随处使用的变量:

    var tap:UITapGestureRecognizer = UITapGestureRecognizer()

我的 viewDidLoad() 方法:

override func viewDidLoad() {
    super.viewDidLoad()

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

以及 UIGestureRecognizer 的 Action:

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

我删除了覆盖函数 cellForRowAtIndexPath 中一个单元格的手势识别器:

 cell.removeGestureRecognizer(self.tap)

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

【问题讨论】:

    标签: swift uitableview ios8 xcode7 uitapgesturerecognizer


    【解决方案1】:

    您将 UITapGesgureRecognizer 添加到 tableView 并尝试从单元格中删除。尝试使用tableView.removeGestureRecognizer(self.tap)

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多