【问题标题】:Tap Recognizer of CustomCell on UITableViewCell can't be click无法点击 UITableViewCell 上 CustomCell 的 Tap Recognizer
【发布时间】:2016-04-21 10:08:10
【问题描述】:

我在UITableViewCellController 上有一个笔尖作为自定义单元格。有一个带有识别器的 UIView。而且,我在cellForRowAtIndexPath里面添加了笔尖,但是我不能点击笔尖上的UIView。

CustomButton.swift(我跳过了tapRecognizer,因为在这里显示并不重要):

class CustomButton: UIView {
    var tappable = false

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(CustomButton.tapRecognizer))
        self.addGestureRecognizer(tapGestureRecognizer)
    }
}

这是笔尖的代码

@IBOutlet weak var customButton: CustomButton!

override func awakeFromNib() {
    self.customButton.tappable = true
}

UITableViewCellController中的代码:

override func viewDidLoad() {
    // register nib
    let nib = UINib(nibName: "CustomCell", bundle: nil)
    self.tableView.registerNib(nib, forCellReuseIdentifier: "customNib")
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("customNib") as! CustomCell
    return cell
}

当我尝试调试视图层次结构时,整个页面(包括按钮(橙色))都被 UITableViewCellContentView 覆盖。

我是否遗漏了代码中的某些内容?

【问题讨论】:

    标签: ios swift uitableview uiview


    【解决方案1】:

    我想你忘了userInteractionEnabled。启用用户交互以查看您想要处理的点击。

    添加类似的东西

     self.view.userInteractionEnabled = true
    

    更新:

    在单元格的内容视图上添加您的视图(按钮视图),而不是直接在单元格上。

    希望这会有所帮助:)

    【讨论】:

    • 谢谢,但它也不起作用。我在上面添加了tappable 之类的东西来处理交互。当我尝试调试视图层次结构时,按钮被 UITableViewCellContentView 覆盖。
    • 这意味着我必须更换我的笔尖?我必须从笔尖中取出 ButtonView 并应该在单元格上手动添加它?
    • 我不这么认为。它应该工作。主要关注的是您的按钮应该在 contentview 上而不是在单元格上。层次结构应该是单元格内容视图按钮
    【解决方案2】:

    首先在单元格的 nib 中添加一个视图,然后在该视图上添加按钮。直接在单元格笔尖上添加按钮将使其隐藏在内容视图后面。

    【讨论】:

      【解决方案3】:

      我应该使用 TableViewCell 而不是 View 创建一个 nib,它可以工作。非常感谢。 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-19
        • 1970-01-01
        • 1970-01-01
        • 2012-02-05
        • 2017-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多