美文网首页
iOS贝塞尔曲线设置圆角

iOS贝塞尔曲线设置圆角

作者: 笨小孩_松 | 来源:发表于2017-11-23 10:52 被阅读220次

    最近公司较闲, 没有前段的开发, 复习了一下iOS, 研究了一下贝塞尔曲线设置圆角.

    写了一个UIImage的分类, 用的时候直接引入头文件, 可以动态设置边框宽度和颜色.

    以下是分类.m文件

    #import"UIImage+image.h"

    @implementationUIImage (image)

    /*

    0.加载图片;

    1.确定边框宽度;

    2.开启一个上下文;

    3.绘制大图显示出来;

    4.绘制一个小圆,设置小圆为裁剪区域;

    5.把图片绘制在上下文中;

    6.从上下文中取出图片;

    7.关闭上下文;

    */

    + (UIImage*_Nonnull)imageWithBorderW:(CGFloat)borderW color:(nonnullUIColor*)color image:(nonnullUIImage*)image{

    CGSizesize =CGSizeMake(image.size.width+2* borderW, image.size.height+2* borderW);

    UIGraphicsBeginImageContext(size);

    UIBezierPath*path = [UIBezierPathbezierPathWithOvalInRect:CGRectMake(0,0, size.width, size.height)];

    [colorset];

    [pathfill];

    UIBezierPath*clipPath = [UIBezierPathbezierPathWithOvalInRect:CGRectMake(borderW, borderW, image.size.width, image.size.height)];

    [clipPathaddClip];

    [imagedrawAtPoint:CGPointMake(borderW, borderW)];

    UIImage*newImage =UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndPDFContext();

    returnnewImage;

    }

    @end

    以下是在ViewController的调用:

    #import"ViewController.h"

    #import"UIImage+image.h"

    @interfaceViewController()

    @property(weak,nonatomic)IBOutletUIImageView*imageV;

    @end

    @implementationViewController

    - (void)viewDidLoad {

    [superviewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    //0.加载图片

    UIImage*image = [UIImageimageNamed:@"touxiang"];

    self.imageV.image= [UIImageimageWithBorderW:5color:[UIColororangeColor]image:image];

    }

    - (void)didReceiveMemoryWarning {

    [superdidReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

    }

    @end

    相关文章

      网友评论

          本文标题:iOS贝塞尔曲线设置圆角

          本文链接:https://www.haomeiwen.com/subject/akzavxtx.html