UITapGestureRecognizer不适用于自定义UIView类

时间:2018-10-26 14:18:08

标签: ios swift uitapgesturerecognizer

我有一个自定义的UIView类,它创建一个复选框。该UIView在自定义表格视图单元格中。

我在cellForRowAt中有此代码

  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TransactionsTableViewCell
    cell.isUserInteractionEnabled = true
    cell.addSubview(cell.test)
    let gesture = UITapGestureRecognizer(target: self, action:  #selector (self.recurringChange(_:)))
    cell.test.isUserInteractionEnabled = true
    cell.test.addGestureRecognizer(gesture)
  }

我在ViewController类中具有此功能

@objc func recurringChange(_ sender: 
UITapGestureRecognizer) {
    print("test")
}

点击test视图时,它不会打印测试。我使用普通的UIView(非自定义)进行了尝试,并且效果完全符合预期。

如果有帮助,请访问以下自定义类的链接:https://github.com/vladislav-k/VKCheckbox

1 个答案:

答案 0 :(得分:1)

我已经测试了Xcode 10中的代码,没有问题。

您可以检查“ cell.isUserInteractionEnabled = true” 在添加TapGesture之前,“ cell.addSubview(test)”已添加到单元格中。