[小技巧]自定义图片的圆角

来源:互联网 发布:网络通信运营商 编辑:程序博客网 时间:2024/05/17 06:05

要实现的效果

主要思路:利用Quarts 2D对图片进行重新绘制。暂未考虑性能优化。

核心方法:

- (void)drawCornerImage{    /**     *  利用BeezierPath绘制圆角图片区域     *     *  参数一: 图片位置大小范围     *  参数二: 圆角位置     *  参数三: 圆角半径     */    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:self.bounds                                               byRoundingCorners:self.corners                                                     cornerRadii:CGSizeMake(self.cornerRadiu, self.cornerRadiu)];    //  因为这里是从边上裁剪的,所以设置的边框宽度要成2,因为会截去一半边框。    path.lineWidth = self.borderWidth * 2;    // 如果有边框,才设置颜色    if (self.borderWidth != 0) {        [self.borderColor setStroke];    }    // 截取上下文区域    [path addClip];    UIImage *image = [UIImage imageNamed:self.imgName];    [image drawInRect:CGRectMake(self.borderWidth * 0.5, self.borderWidth * 0.5, path.bounds.size.width - self.borderWidth, path.bounds.size.height - self.borderWidth)];    // 先重绘图片,最后渲染边框,否则图片会覆盖边框    [path stroke];}

Demo详细地址:https://github.com/iDustPan/CustomCornerImage

0 0
原创粉丝点击