在启用选择的情况下使用UITableView
时,我可以选择一行,并通过突出显示选中它。但是,当我选择第二行时,默认情况下会发生这种情况:
我要做的是在上面的步骤3中这样做,两个单元格不会同时突出显示。有可能这样做吗?
答案 0 :(得分:1)
在此使用此委托,您可以取消选择单元格。
答案 1 :(得分:0)
这有效
- (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath{
[self.tableView.delegate tableView:tableView didSelectRowAtIndexPath:indexPath];
return NO;
}
答案 2 :(得分:0)
请按照以下步骤操作
希望这可以帮到你
答案 3 :(得分:-1)
好的,我根据讨论编辑了这个答案。
假设您是UITableViewCell的子类,请在实现中使用此代码:
(例如,CustomTableCell.m)
#define MyTableCellHighlightedNotification @"MyTableCellHighlighted"
- (id)initWithStyle:(UITableViewCellStyle)style
reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if(self){
// Your custom initialization here
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tableCellHighlighted:)
name:MyTableCellHighlightedNotification
object:nil];
}
}
- (void) dealloc
{
[[NSNotifcationCenter defaultCenter] removeObserver:self];
// ...Release ivars...
[super dealloc]
}
- (void) setHighlighted:(BOOL) highlighted
{
// Default behaviour (defer to super)
[super setHighlighted:highlighted];
if(highlighted == YES){
// De-highlight all other cells
[[NSNotificationCenter defaultCenter] postNotificationName:MyTableCellHighlightedNotification
object:self]
}
}
- (void)tableCellHighlighted:(NSNotification*) notification
{
// All cells receive this notification
if([notifcation object] != self){
// All cells except the notification sender de-highlight themselves
[self setHighlighted:NO];
}
}