UIImage - 决定应该舍入的角落

时间:2011-11-09 09:50:19

标签: iphone ios ios4 uiimageview

我知道这是一个常见问题,但我没有看到任何解决方案,因此这个帖子。

我们都创建了一个分组的UITableView,并尝试将cell.imageView设置为图像。但是发生了什么?第一个和最后一个单元格变得丑陋,因为它们是矩形的。

我们想要做的是仅在最后一行图像的第一行和左下角围绕图像的左上角。

这样的方法:

cell.imageView.image = [image setCornerRadiusLeftTop: 10.0 rightTop: 0 leftBottom: 0 rightBottom: 0];`

有没有人做过类似的事情?

2 个答案:

答案 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];
相关问题