1

我在 Storyboard 中完成了 4 个部分中带有静态单元格的 UITableView。但是,我想更改一个部分的分隔符颜色([UIColor clearColor])。我怎样才能做到这一点???真的有可能吗?

我可以将整个表格的 separatorColor 设置为 clearColor,但不仅限于一个特定的部分。

表格视图部分的屏幕截图:

表格视图部分的屏幕截图

4

3 回答 3

1

AFAIK没有办法做到这一点。但是您可以将背景图像放置在底部有分隔符的单元格中,并将 separatorstyle 设置为 UITableViewCellSeparatorStyleNone。因此,您在每个单元格中都有自己的分隔符。

于 2012-07-22T12:45:19.403 回答
0

也许您可以通过将部分的标题文本设置为空字符串来实现您的目标。

于 2012-07-22T12:45:29.503 回答
0

一种方法是创建您自己的UIView子类并在drawRect:. 您将采用此视图并将其添加为backgroundView您的表格视图单元格。像这样的东西:

- (void)drawRect:(CGRect)rect
{
    [super drawRect:rect];
    // Drawing code
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 1.0);

    // Draw black line
    CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
    CGFloat components[] = {0.0, 0.0, 0.0, 0.3};
    CGColorRef blackColor = CGColorCreate(colorspace, components);

    CGContextSetStrokeColorWithColor(context, blackColor);

    CGContextMoveToPoint(context, 0, rect.size.height - 1.5);
    CGContextAddLineToPoint(context, rect.size.width, rect.size.height - 1.5);
    CGContextStrokePath(context);
    CGColorRelease(blackColor);

    // Draw white bottom line
    CGFloat whiteComponents[] = {1.0, 1.0, 1.0, 0.75f};
    CGColorRef whiteColor = CGColorCreate(colorspace, whiteComponents);

    CGContextSetStrokeColorWithColor(context, whiteColor);

    CGContextMoveToPoint(context, 0, rect.size.height - 0.5);
    CGContextAddLineToPoint(context, rect.size.width, rect.size.height - 0.5);
    CGContextStrokePath(context);
    CGColorRelease(whiteColor);

    // Draw top white line
    CGFloat whiteTransparentComponents[] = {1.0, 1.0, 1.0, 0.45};
    CGColorRef whiteTransparentColor = CGColorCreate(colorspace, whiteTransparentComponents);

    CGContextSetStrokeColorWithColor(context, whiteTransparentColor);

    CGContextMoveToPoint(context, 0, 0.5);
    CGContextAddLineToPoint(context, rect.size.width, 0.5);
    CGContextStrokePath(context);
    CGColorRelease(whiteTransparentColor);



    CGColorSpaceRelease(colorspace);
}
于 2012-07-22T13:00:27.370 回答