2013-02-24 50 views
1

我有4个自定义的UITableViewCell子类,它们都是从包含UILabels的笔尖生成的。我注意到当我点击UIlabel的框架时,我无法选择单元格。有没有解决这个问题的方法?UILabels在自定义UITableViewCell上阻塞单元格选择

+0

当您单击没有任何UILabel帧相交的单元格的空白区域时,是否可以选择单元格? (无效)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;另外,如果您选择.xib文件中的tableView ...是“选择”=“单选”? [http://i.stack.imgur.com/AOZah.png] – chuthan20 2013-02-24 04:06:02

+0

是的,我可以在UIlabel框架外单击时选择单元格。是的,我确实实施了didSelectRowAtIndexPath。对你最后一个问题也是。 – ChemDev 2013-02-24 04:11:12

+0

顺便说一句我正在记录didSelectRow方法,并且我可以确认在我点击UILabels时正在调用它。 – ChemDev 2013-02-24 04:14:27

回答

6

我相信你可以将userInteractionEnabled设置为NO,这样触摸就不会被UILabels拦截。

2

进入UIBuilder并选择标签,并确保userInteractionEnabled(它在视图属性下)设置为no。

+0

userInteractionEnabled已设置为否。是否有其他想法? – ChemDev 2013-02-24 04:02:19

+0

我把它设置为no虽然代码,虽然IB。 – ChemDev 2013-02-24 04:05:59

+0

@NewCoder好吧,我会测试把它打开,以防万一我的记忆完全是背单词。但坦白地说,这让我怀疑其他事情正在发生。 – RonLugge 2013-02-24 04:06:07

0

好的我想通了。我需要将整个UITableViewCell子类的nib设置为userinteractionenabled = NO。在每个子类的我的init方法添加以下代码:

 [[NSBundle mainBundle] loadNibNamed:@"ROIUITableViewCellType1" 
            owner:self 
           options:nil]; 
    [self addSubview:self.mainView]; 

从笔尖的子视图遮蔽其响应敲击事件的细胞。我不确定这是否是正确的方式加载可能导致我的问题的UITableViewCell子类的一个笔尖。有什么想法吗?

+0

是的,我认为还有另一种观点是拦截触摸......但是当我制作自定义单元格时,我通常会这样做...... [请看3个upvotes的第一个答案](http:// stackoverflow .COM /问题/ 6898060 /自定义的UITableViewCell-SIGABRT-ON-loadnibnamed) – chuthan20 2013-02-24 23:36:57

相关问题