[英]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.