【发布时间】:2012-11-07 17:56:53
【问题描述】:
我在滚动表格时遇到表格视图单元格未保持其“选定”状态的问题。以下是相关代码:
@property (nonatomic, strong) NSIndexPath *selectedIndexPath;
-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
self.selectedIndexPath = indexPath;
//do other stuff
}
-(UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyCustomCell_iPhone* cell = [tableView dequeueReusableCellWithIdentifier:@"MyCustomCell_iPhone"];
if (cell == nil)
cell = [[[NSBundle mainBundle] loadNibNamed:@"MyCustomCell_iPhone" owner:self options:nil] objectAtIndex:0];
if ([indexPath compare: self.selectedIndexPath] == NSOrderedSame) {
[cell setSelected:YES animated:NO];
}
return cell;
}
对于单元格:
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
if (selected) {
self.selectedBg.hidden = NO;
}else{
self.selectedBg.hidden = YES;
}
}
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
[super setHighlighted:highlighted animated:animated];
if (highlighted) {
self.selectedBg.hidden = NO;
}else{
self.selectedBg.hidden = YES;
}
}
如何让选定的单元格保持突出显示?如果我将它从屏幕上滚动出来,当它在屏幕上向后滚动时,它会显示为未选中状态(隐藏了它的 selectedBg)。
编辑: 从单元格中删除 setHighlighted 方法可以解决此问题。然而,这意味着按下表格单元格时我没有突出显示状态。我想知道这个问题的解决方案。
【问题讨论】:
标签: ios uitableview