我知道这是一个常见问题,但我没有看到任何解决方案,因此这个帖子。
我们都创建了一个分组的UITableView,并尝试将cell.imageView设置为图像。但是发生了什么?第一个和最后一个单元格变得丑陋,因为它们是矩形的。
我们想要做的是仅在最后一行图像的第一行和左下角围绕图像的左上角。
这样的方法:
cell.imageView.image = [image setCornerRadiusLeftTop: 10.0 rightTop: 0 leftBottom: 0 rightBottom: 0];`
有没有人做过类似的事情?
答案 0 :(得分:0)
一种解决方案是使用layer mask:
cell.imageView.layer.mask = layerMask;
你需要两个面具:一个用于顶部,一个用于底部细胞。您可以使用CAShapeLayer创建此类掩码。
答案 1 :(得分:0)
解决方案:
+ (CAShapeLayer *) roundedCornerOnImage: (UIImageView *)imageView onCorner: (UIRectCorner)rectCorner
{
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:imageView.bounds
byRoundingCorners:rectCorner
cornerRadii:CGSizeMake(10.0, 10.0)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = imageView.bounds;
maskLayer.path = maskPath.CGPath;
return maskLayer;
}
UITableViewCell中imageview的使用示例:
if (indexPath.row == 0)
cell.imageView.layer.mask = [Helper roundedCornerOnImage:cell.imageView onCorner:UIRectCornerTopLeft];
else if (indexPath.row == self.arrayPeople.count - 1)
cell.imageView.layer.mask = [Helper roundedCornerOnImage:cell.imageView onCorner:UIRectCornerBottomLeft];