我想在我的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
并不是很好,我找不到任何可以帮助我的事。
谢谢!
答案 0 :(得分:4)
如果中风过宽,请尝试更改图层的lineWidth
。这样的事情可以解决问题:
border.lineWidth = 1. / [[UIScreen mainScreen] scale];
这将在非Retina设备上绘制1px线,在Retina设备上绘制1px线(0.5pt),从而产生超清晰线。
此外,您可以使用moveToPoint
上的addLineToPoint
和UIBezierPath
来使用一行而不是一个矩形来构建路径:
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