博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
贝塞尔曲线学习
阅读量:6980 次
发布时间:2019-06-27

本文共 1867 字,大约阅读时间需要 6 分钟。

贝塞尔曲线是UIkit中的一个关于图形绘制的类

贝塞尔曲线可以绘制矩形,圆形,直线,曲线,以及它们的混合图形。

系统常用的内置方法

// 创建基本路径

+ (instancetype)bezierPath;

// 创建矩形路径

+ (instancetype)bezierPathWithRect:(CGRect)rect;

// 创建椭圆路径

+ (instancetype)bezierPathWithOvalInRect:(CGRect)rect;

// 圆角矩形

+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect cornerRadius:(CGFloat)cornerRadius;

// 创建指定位置的圆角矩形

+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii;

// 绘制弧线

     center:弧线圆心坐标

     radius:弧线半径

     startAngle:弧线起始角度

     endAngle:弧线结束角度

     clockwise:是否顺时针绘制

+ (instancetype)bezierPathWithArcCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise;

// 绘制一个圆弧

- (void)addArcWithCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise;

//绘制圆角图片 常用于tableViewcollectionView 复用机制里面加载圆角图片卡顿 主要是因为系统默认方法直接切,是在屏幕外操作完成后,才渲染到屏幕上(离屏渲染) 解决方案:异步绘制,主线程渲染

-(void)drawRect:(CGRect)rect

{

    UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

    UIImage *image=[UIImage imageNamed:@"share_code_pro"];

    CGRect rect1 = CGRectMake(0, 0, 100, 100);

    

    UIGraphicsBeginImageContextWithOptions(CGSizeMake(100, 100), NO, [UIScreen mainScreen].scale);

    //获取图形上下文

    CGContextRef ctx = UIGraphicsGetCurrentContext();

    //构建bezier曲线

    UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:rect1 byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(20, 20)];

    //

    CGContextAddPath(ctx,path.CGPath);

    //裁剪

    CGContextClip(ctx);

    //将图片贴上去

    [image drawInRect:rect1];

    CGContextDrawPath(ctx, kCGPathFillStroke);

    UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();

    //关闭图形上下文

    UIGraphicsEndImageContext();

    imageView.image=newImage;

    [self addSubview:imageView];

}

转载于:https://www.cnblogs.com/ghy66/p/6386877.html

你可能感兴趣的文章
bzoj千题计划157:bzoj1220:[HNOI2002]跳蚤
查看>>
bzoj千题计划212:bzoj1864: [Zjoi2006]三色二叉树
查看>>
Android开发之ProgressDialog在独立Thread线程中更新进度
查看>>
Objective-C内存管理机制
查看>>
数据结构化与保存
查看>>
图片内容保存到数据库,并从数据库里获取图片
查看>>
a标签的link、visited、hover、active的顺序
查看>>
SQL系列(四)—— 唯一值(distinct)
查看>>
《数据结构》例1.3
查看>>
堆和栈的区别 (转贴)
查看>>
OpenSSL s_server / s_client 应用实例
查看>>
微信小程序开发工具(0.9.092300)下载地址,分享给没有公众号的小伙伴
查看>>
Qt学习之路_12(简易数据管理系统)
查看>>
项目中的常见算法
查看>>
Android 联网设置
查看>>
ga算法
查看>>
深度学习-目标检测(Faster R-CNN 2)-转载
查看>>
用命令实现Win7远程桌面关机和重启
查看>>
HDU 1013 Digital Roots(字符串,大数,九余数定理)
查看>>
CF986A Fair【图论/BFS】
查看>>