我在viewForHeaderInSection
上有一个自定义UITableView
- 让我们称之为HeaderCell
(UITableViewCell
的一个简单子类)具有最奇怪的行为:
点击部分标题:
tableView:didSelectRowAtIndexPath:
indexPath
触发UITableViewCell
。就像我点击单元格一样,但没有。我点击标题。问题是,如果我用HeaderCell
替换viewForHeaderInSection
上的自定义UIView
,那就不会再发生了!我已检查过与 xib 及其类关联的所有操作,找不到任何addTarget:
或任何 xib 操作。
其他奇怪的因素:它不会发生在第一个HeaderCell(第0部分)上,只发生在> = 1部分。
在HeaderCell
课程上,我只需要实现:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
return;
}
这是最后的解决方案。有人在之前检测到此行为吗?
答案 0 :(得分:5)
您不应该使用UITableViewCell
的子类作为页眉/页脚。使用UITableViewHeaderFooterView
(如果您可以使用> = iOS6)或仅使用UIView
。
答案 1 :(得分:1)
您可以通过setEnableUserInteraction方法完成此操作。请参考给出的代码,
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
[cell setUserInteractionEnabled:YES];
if([indexPath row] == 0)
[cell setUserInteractionEnabled:NO];
return cell;
}
希望这会对你有所帮助:)。
答案 2 :(得分:0)
return cell.contentView
作为页眉/页脚,请使用return cell
代替UITableViewCell
答案 3 :(得分:0)
这是一个旧线程,但是如果您使用UITableViewCell的子类作为标头,则只返回内容视图,而不是headerforView函数中的完整单元格。
>