我有一个完全用代码编写的自定义UITableViewCell
(没有IB),它有一个附件按钮,只需在表视图上调用didSelectRowAtIndexPath
,它就可以正常工作,并且可以毫无问题地调用该方法。
然而,当我点击单元格本身(不在附件视图上)时,没有任何被调用,为什么?
编辑:这里的代码非常庞大......但是,自定义单元格包含大量标签,几个图像和滚动视图......
答案 0 :(得分:4)
这是一个黑暗中的镜头,但如果每个单元格上有许多不同的对象(即图像,标签等),那么它可能无法正常工作,因为这些对象是用户在尝试单击时所击中的对象细胞。细胞是否变成蓝色(表示选择)?如果没有,请暂时尝试隐藏/删除这些对象,看看它是否有效。
如果是这种情况,那么您可能想要做的是创建一个位于其他对象之上的不可见单元格或按钮,并从幕后调用didSelectRowAtIndexPath。
这应该可以解决您的问题: Raise selection event (didSelectRowAtIndexPath) when subview of UITableViewCell is tapped
尝试将视图的userInteractionEnabled属性设置为NO。
这将使其忽略所有触摸事件,然后其下的视图将能够捕获这些事件。 - Felipe Sabino
答案 1 :(得分:1)
您必须发布您的代码以了解您做了什么...您必须查看此示例以了解您的代码是否正确...
答案 2 :(得分:1)
我部分回答了我的问题:宽滚动视图阻止了单元格调用didSelectRowAtIndexPath,删除scrollView将解决问题,但是,我想调用此方法存在scrollView ...任何人得到的这些想法将受到高度赞赏......