[英]UIImage - decide which corners that should be rounded
我知道这是一个常见的问题,但是我没有看到任何解决方案,因此没有这个线程。
我们都创建了一个分组的UITableView并尝试将cell.imageView设置为图像。 但是发生了什么? 第一个和最后一个单元格很难看,因为它们是矩形。
我们要做的是仅在第一行中图像的左上角和最后一行中图像的左下角四舍五入。
这样的方法:
cell.imageView.image = [image setCornerRadiusLeftTop: 10.0 rightTop: 0 leftBottom: 0 rightBottom: 0];`
那里有人做过类似的事情吗?
一种解决方案是使用图层蒙版 :
cell.imageView.layer.mask = layerMask;
您将需要两个遮罩:一个遮罩顶部,一个遮罩底部。 您可以使用CAShapeLayer创建这样的蒙版。
解:
+ (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];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.