Objective-C用UIBezierPath画图

原创 2016年08月31日 15:02:50

UIBezierPath是Core Graphics框架关于路径的封装。我们通过设置路径即可画出我们想要的一些简单图形。如一个简单的需求:IM消息的展示框的一个“尖”:
这里写图片描述
还有下面这个:
这里写图片描述
这样一个不规则的图形我们只需要在规则的矩形View右边紧挨着画一个小三角即可。下面的代码使用UIBezierPath画了一个三角形:

- (void)drawTrianglePath {

  //初始化
  UIBezierPath *path = [UIBezierPath bezierPath];
  //初始点
  [path moveToPoint:CGPointMake(20, 20)];
  //第二点
  [path addLineToPoint:CGPointMake(self.frame.size.width - 40, 20)];
  //第三个点
  [path addLineToPoint:CGPointMake(self.frame.size.width / 2, self.frame.size.height - 20)];

  // 最后的闭合线是可以通过调用closePath方法来自动生成的,也可以调用-addLineToPoint:方法来添加
  //  [path addLineToPoint:CGPointMake(20, 20)];

  [path closePath];

  // 设置线宽
  path.lineWidth = 1.5;

  // 设置填充颜色
  UIColor *fillColor = [UIColor greenColor];
  [fillColor set];
  [path fill];

  // 设置画笔颜色
  UIColor *strokeColor = [UIColor blueColor];
  [strokeColor set];

  // 根据我们设置的各个点连线
  [path stroke];
}

我们同样可以多设置一些点来绘制其他的图形,可以使用+ bezierPathWithOvalInRect:方法来画圆,当我们传的rect参数是一个正方形时,画出来的就是圆(矩形则是椭圆):

  UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(20, 20, self.frame.size.width - 40, self.frame.size.width - 40)];

使用UIBezierPath画的图需要放到view的drawRect方法中才能显示 ,如果想要在其他方法中显示需要借助CAShapeLayer类。把UIBezierPath类的path属性赋值给CAShapeLayer的path,然后将CAShapeLayer对象添加到对应View的layer上面即可。
这里有一篇博客介绍UIBezierPath的使用,很详细:http://www.huangyibiao.com/archives/190

版权声明:本文为博主原创文章,转载请注明出处。

相关文章推荐

iOS绘图-UIBezierPath的使用

UIBezierPath简单介绍 iOS系统本身提供了两套绘图的框架,即UIBezierPath 和 Core Graphics。使用UIBezierPath可以创建基于矢量的路径,此类是Cor...

UIBezierPath绘制三角形

-(void)drawRect:(CGRect)rect {     CGContextRef context = UIGraphicsGetCurrentContext();    ...

iOS 简单的使用UIBezierPath绘制

UIBezierPath这个类呢主要用于绘图。  之前的项目中需要绘图的部分都是用Core Graphics来绘制,OC是我的第一门语言,所以对于Core Graphics的C语言API不太适应,最...

iOS图形绘制UIBezierPath篇

1、绘制直线UIBezierPath *line = [[UIBezierPath alloc] init]; //设置线宽 line.lineWidth = 3; [line moveToPoint...

学习UIBezierPath画图

基础知识 使用UIBezierPath可以创建基于矢量的路径,此类是Core Graphics框架关于路径的封装。使用此类可以定义简单的形状,如椭圆、矩形或者有多个直线和曲线段组成的形状等。 ...

推荐一个blog,iOS 绘图的学习 objective-c 绘图资料

http://donbe.blog.163.com/blog/static/1380480212010423113440827/ 想要学动画,那么就从绘图的基础学起吧 Applicat...

iOS-实现最简单的画线功能 . 转

前提:CoreGraphics.framework  - (void)viewDidLoad { [super viewDidLoad]; UIImage...

UIBezierPath画图

  • 2016年03月07日 22:45
  • 77KB
  • 下载

十分钟让你明白Objective-C的语法(和Java、C++的对比)

很多想开发iOS,或者正在开发iOS的程序员以前都做过Java或者C++,当第一次看到Objective-C的代码时都会头疼,Objective-C的代码在语法上和Java, C++有着很大的区别,有...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Objective-C用UIBezierPath画图
举报原因:
原因补充:

(最多只允许输入30个字)