在 contentView 后面隐藏 UITableView 分隔符

Posted

技术标签:

【中文标题】在 contentView 后面隐藏 UITableView 分隔符【英文标题】:Hiding UITableView separator behind the contentView 【发布时间】:2009-09-16 01:05:01 【问题描述】:

我在 iPhone OS 3.0 中创建了一个类似于左图的分组 UITableView。结果是 OS 3.1 中的正确图像。

imageView 位于分隔符下方。

我尝试将内容视图放在前面。当 tableView 处于分组样式(自己绘制分隔符)时,separatorStyle 的适当性似乎被忽略了。更改分隔符颜色会给出字符串结果。

感谢您的帮助!

编辑:这是没有更改的代码:

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    cell.textLabel.font = [UIFont boldSystemFontOfSize:18.0];


cell.textLabel.text = [[metro.arretDirection objectAtIndex:indexPath.row] name];

NSString* name;
if (indexPath.row == 0) 
    name = @"Begining";

else if (indexPath.row + 1 == [metro.arretDirection count]) 
    name = @"End";

else 
    if ([[[metro.arretDirection objectAtIndex:indexPath.row] lines] count]== 1) name = @"Little";
    else name = @"Big";


UIImage* metroImage = [[UIImage alloc] initWithContentsOfFile:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"%i%@.png", metro.metroNumber, name]]];
cell.imageView.image = metroImage;
[metroImage release];

return cell;

【问题讨论】:

这很好奇。可以发一下相关代码吗? 【参考方案1】:

在单元格上尝试将 clipsToBounds 设置为 NO。例如cell.clipsToBounds = NO;

【讨论】:

有可能是3.1中imageView的大小缩小了2个像素,所以把imageView的frame写到log里看看是什么意思。还可以查看 3.0 中 imageView 的 contentMode 是什么以及它与 3.1 的比较,还可以尝试 imageView 的 clipsToBounds 属性。甚至可能是 imageView 层的 masksToBounds 属性(尽管这应该已经设置为 no)。【参考方案2】:

答案其实很简单,只需在单元格中添加一个UIImageView 并正确放置即可,而不是使用内置的imageView。

【讨论】:

以上是关于在 contentView 后面隐藏 UITableView 分隔符的主要内容,如果未能解决你的问题,请参考以下文章

隐藏的导航栏仍然会向下推视图

在 reloadSections 后 TableView 部分变为隐藏

SwiftUI-NavigationLink中的NavigationBar在视图中迅速显示然后消失

iPhone:向 Cell ContentView 添加子视图会在滚动时覆盖单元格文本

在 SwiftUI 中为 UITextView 设置初始视图偏移量

UITableView 自定义分隔符,选择时隐藏