为UITableViewCell绘制虚线边框底部

时间:2014-02-18 13:10:10

标签: ios uitableview

我想在我的UITableViewCell添加虚线底部边框。

目前,我使用以下代码

    CAShapeLayer *border = [CAShapeLayer layer];
    border.strokeColor = [UIColor colorWithRed:67/255.0f green:37/255.0f blue:83/255.0f alpha:1].CGColor;
    border.fillColor = nil;
    border.lineDashPattern = @[@1, @1];
    border.path = [UIBezierPath bezierPathWithRect:cell.bounds].CGPath;
    border.frame = CGRectMake(cell.bounds.origin.x, cell.bounds.origin.y + cell.bounds.size.height, cell.bounds.size.width, 1);
    [cell.layer addSublayer:border];

使用这段代码,我的单元格有一个虚线边框底部,但虚线边框的高度是两倍太大。

但是我操纵CAShapeLayer并不是很好,我找不到任何可以帮助我的事。

谢谢!

2 个答案:

答案 0 :(得分:4)

如果中风过宽,请尝试更改图层的lineWidth。这样的事情可以解决问题:

border.lineWidth = 1. / [[UIScreen mainScreen] scale];

这将在非Retina设备上绘制1px线,在Retina设备上绘制1px线(0.5pt),从而产生超清晰线。

此外,您可以使用moveToPoint上的addLineToPointUIBezierPath来使用一行而不是一个矩形来构建路径:

UIBezierPath *bPath = [UIBezierPath new];
[bPath moveToPoint:CGPointZero];
[bPath addLineToPoint:(CGPoint){100, 0}];
border.path = bPath.CGPath;

根据需要进行调整。

答案 1 :(得分:0)

创建自定义单元格并将边框设置为自定义单元格的底部

/* drow line bottom */
cell.layer.shadowColor = [UIColor colorWithRed:67/255.0f green:37/255.0f blue:83/255.0f alpha:1].CGColor;
cell.layer.shadowOpacity = 1.0;
cell.layer.shadowRadius = 0;
cell.layer.shadowOffset = CGSizeMake(0.0, 1.0);

或..

另外明智地检查波纹管链接,他们给出设置细胞波纹管图像的答案 UITableView Cells separated by dotted lines