UITableView:单击空白区域不会触发didSelectRowAtIndexPath

时间:2014-09-01 12:41:15

标签: ios uitableview select

当我开发iOS8 Today Extension时,我将UITableViewController设置为 主视图控制器。我遇到了这个问题:

当我使用initWithStyle初始化UITableViewCell时:UITableViewCellStyleDefault 在cellForRowAtIndexPath中,一个单元格的整个区域可以触发didSelectRowAtIndexPath 一般。但是当将UITableViewCellStyle设置为UITableViewCellStyleValue1时, UITableViewCellStyleValue2或UITableViewCellStyleSubtitle,我只能触发 didSelectRowAtIndexPath点击detailTextLabel或imageView的区域。单击其他空白 区域将没有回应。

我试图将tableview的委托设置为self,设置detailTextLabel和imageView' s setUserInteractionEnabled:在cellForRowAtIndexPath中为false,并且所有这些都不起作用。是否 有谁对此有任何想法?

P.S。我没有使用storyboard或xib文件,只是代码。

我在Android上发现了同样的问题: I'd like to click anywhere (blank area) in a list view

1 个答案:

答案 0 :(得分:8)

我在尝试在UITableView内显示TodayView时遇到此问题。虽然我不知道为什么会发生这种情况,但我发现这只发生在UITableViewCell背景为clearColor时。如果将背景设置为其他颜色,则会调用didSelectRowAtIndexPath。但是,这是一个快速的解决方法 - 将UILabel放在单元格contentView的整个区域上,然后每次调用委托方法。无论如何,这似乎是一个错误。