uitableview 分隔符显示为三角形

Tableview seperator appears as a triangle

有没有办法得到像下面截图这样的表格视图分隔符效果,该效果已在快公司应用中使用,并显示视图中的两行由三角形分隔符分隔。

任何关于如何在表视图中实现这种效果的指示都将不胜感激。屏幕底部的分隔符是半透明的,与下一行关联的图像会显示出来。

屏幕截图的 link 在这里:https://s3-us-west-1.amazonaws.com/jjm.so/17427B2C-3837-4428-B82E-8D1C57BFA706B53CD936-AE93-4F2A-B3DB-7F7018A02CBA.jpg

我想你在上面使用了 ImageMasking,它可能会对你有所帮助。只需简单地创建图层图像,即您 required.and 然后只需添加遮罩图像即可。

我认为这是单元格内的自定义 UIView,它是通过绘制 bezierPath 来获得形状而创建的。 UIView 的颜色为 0,0,0,alpha 为 0.3-0.4,是 cell.contentView 的子视图。表格视图的分隔符为None,自定义视图位于单元格的底部,因此呈现出用作三角形自定义分隔符的效果。

好了:

    CGRect frame = imageView.bounds;

    UIBezierPath *path   = [UIBezierPath bezierPath];
    [path moveToPoint:CGPointMake(0, frame.size.height)];
    [path addLineToPoint:CGPointMake(0, frame.size.height-60)];
    [path addLineToPoint:CGPointMake(frame.size.width/2, frame.size.height-20)];
    [path addLineToPoint:CGPointMake(frame.size.width, frame.size.height-60)];
    [path addLineToPoint:CGPointMake(frame.size.width, frame.size.height)];
    [path closePath];

    CAShapeLayer *mask   = [CAShapeLayer layer];
    mask.path            = path.CGPath;
    mask.strokeColor     = [UIColor clearColor].CGColor;
    mask.fillColor       = [UIColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:0.5].CGColor;
    [imageView.layer addSublayer:mask];