如何在iOS中为单元格分隔符设置图像[重复]

Posted

技术标签:

【中文标题】如何在iOS中为单元格分隔符设置图像[重复]【英文标题】:How to set an image for Cell Separator in iOS [duplicate] 【发布时间】:2013-12-12 05:43:10 【问题描述】:

在我的表格视图中,我需要将单元格分隔符设置为我随身携带的图像。我该怎么做?

【问题讨论】:

只需将其放在自定义单元格的底部即可。并将默认单元格分隔样式应用于无。 你可以实现像[this][1]这样的链接。这是重复问题。 [1]:***.com/questions/4804632/uitableview-separator-line 【参考方案1】:

一个简单的解决方案是您可以将图案图像设置为单元格分隔符。

[tableView setSeparatorColor:[UIColor colorWithPatternImage:[UIImage imageNamed:...]]];

或者你可以简单地在单元格内容视图中添加一个 UIImageView

UIImageView *imagView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"seprater.png"]];
imgView.frame = CGRectMake(0,cell.contentView.frame.size.height - 1.0, cell.contentView.frame.size.width, 1);
[customCell.contentView addSubview:imageView];

【讨论】:

第一个代码解决了我的问题。但我的单元格分隔符似乎与右侧对齐。有什么办法可以解决吗? @HarikrishnanT 这是 ios 7 的问题。你应该将它用于 iOS7 - if ([tblvw respondsToSelector:@selector(setSeparatorInset:)]) [tblvw setSeparatorInset:UIEdgeInsetsZero];【参考方案2】:

您最好的选择可能是将表格的 separatorStyle 设置为 UITableViewCellSeparatorStyleNone。

并在需要时手动添加/绘制一条线(可能在 tableView:cellForRowAtIndexPath:) 中。

tableView:cellForRowAtIndexPath:

...

if (cell == nil) 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];

    // Drawing our own separatorLine here because I need to turn it off for the
    // last row. I can only do that on the tableView and on on specific cells.
    // The y position below has to be 1 less than the cell height to keep it from
    // disappearing when the tableView is scrolled.
    UIImageView *separatorLine = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, cell.frame.size.height - 1.0f, cell.frame.size.width, 1.0f)];
    separatorLine.image = [[UIImage imageNamed:@"grayDot"] stretchableImageWithLeftCapWidth:1 topCapHeight:0];
    separatorLine.tag = 4;

    [cell.contentView addSubview:separatorLine];

    [separatorLine release];

// 设置默认单元格设置。

...
UIImageView *separatorLine = (UIImageView *)[cell viewWithTag:4];
separatorLine.hidden = NO;
...
// In the cell I want to hide the line, I just hide it.
seperatorLine.hidden = YES;

... 在 viewDidLoad 中:

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 

【讨论】:

【参考方案3】:

要激活它,请在单元格底部放置一个图像视图并为其分配一个图像。还请确保您已将 cellSeperatorStyle 设置为无

应该可以的

【讨论】:

【参考方案4】:
    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath  *)indexPath
    
         UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"<image name>"]];
        imgView.frame = CGRectMake(0, cellHeight, cellWidth, 1);
        [customCell.contentView addSubview:imgView];
         return  customCell;

     

【讨论】:

【参考方案5】:

首先,您必须通过以下代码将 SeparatorStyle 设为无

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

然后在每个单元格的末尾添加图像

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath  *)indexPath

     ..... 

     UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"seprater.png"]];
     [imgView sizeToFit];
     [Cell.contentView addSubview:imgView];

     .....

 

【讨论】:

以上是关于如何在iOS中为单元格分隔符设置图像[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何像这样创建 iOS 表格视图?

iOS swift 删除 UITableView 单元格分隔空间

使用图像设置 backgroundView 时缺少分组的 UITableView 的单元格分隔符

如何获得默认的单元格分隔符颜色?另外,如何设置每个单元格的分隔符颜色?

如何设置表格视图以仅在 ios 中显示单行?

如何隐藏 SwiftUI 列表分隔符 [重复]