以编程方式选择表格单元格时缺少 UITableview 表格单元格分隔符
Posted
技术标签:
【中文标题】以编程方式选择表格单元格时缺少 UITableview 表格单元格分隔符【英文标题】:UITableview tablecell separator missing when the tablecell is selected programatically 【发布时间】:2014-03-28 21:29:37 【问题描述】:@implementation TestTableViewCell
-(void)setSelected:(BOOL)selected animated:(BOOL)animated
[super setSelected:selected animated:animated];
self.selectedBackgroundView = [[UIView alloc] init];
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
[super setHighlighted:highlighted animated:animated];
if(highlighted || self.selected)
self.labelTest.tintColor = self.tintColor;
self.labelTest.text = @"HighLighted";
else
self.labelTest.tintColor = [UIColor redColor];
self.labelTest.text = @"Not HighLighted";
@end
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
tableView.separatorColor = [UIColor redColor];
return 10;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
TestTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"testCell"];
if (indexPath.row == 5)
[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
return cell;
这是我的代码。如果行是 5 以编程方式使用 selectRowAtIndexPath 选择单元格。当我这样做时,7.1 中缺少表格分隔符但相同的代码在 7.0 中工作正常
不确定为什么 7.1 中缺少分隔符
【问题讨论】:
这听起来类似于这个问题。听起来单元格正在分隔符的顶部绘制。您可以尝试调整单元格的高度。 ***.com/questions/22358831/… @DaveS 我在发布问题之前尝试过。不幸的是,这对我不起作用。感谢您的调查。 self.selectedBackgroundView = [[UIView alloc] init];在我看来也很可疑。为什么选择时使用空白视图作为背景?从您的图片来看,它看起来没有必要,如果分隔符在背景视图中,它将解释缺少分隔符。 问题是视图覆盖了分隔符,只需确保为 heightForRowAtIndexPath 方法返回正确的高度,并确保在运行时没有更改视图高度 我正在使用自定义的 uitableviewcell。我没有动态改变高度。 【参考方案1】:实际上问题在于设置选定的背景。它在 ios7 中运行良好,但在 7.1 中存在一些问题
【讨论】:
以上是关于以编程方式选择表格单元格时缺少 UITableview 表格单元格分隔符的主要内容,如果未能解决你的问题,请参考以下文章
选择单元格时,TableVIew 中的 UIImage 会移动
以编程方式选择表格视图单元格:selectRowAtIndexPath vs setSelected
如何在尝试检索选择的表格单元格时正确实现 - (NSIndexPath *)indexPathForSelectedRow