Quartz2D在iOS开发中的价值
为了便于搭建美观的
UI
界面,
iOS
提供了
UIKit
框架,里面有各种各样的
UI
控件
UILabel
:显示文字
UIImageView
:显示图片
UIButton
:同时显示图片和文字(能点击)
…
…
利用
UIKit
框架提供的控件,拼拼凑凑,能搭建和现实一些简单、常见的
UI
界面
但是,有些
UI
界面极其复杂、而且比较个性化,用普通的
UI
控件无法实现,这时可以利用
Quartz2D
技术将控件内部的结构画出来,自定义控件的样子
其实,
iOS
中大部分控件的内容都是通过
Quartz2D
画出来的
因此,
Quartz2D
在
iOS
开发中很重要的一个价值是:自定义
view
(自定义
UI
控件)
//
// DrawLine.m
#import "DrawLine.h"
@implementation DrawLine
/*
在这个方法里绘制图形。
只有在这个方法里才能获取到跟这个View的layer相关联的图形上下文(context)
绘图步骤:
1.获取上下文
2.创建路径(描述路径)
3.把路径添加到上下文
4.渲染上下文
*/
- (void)drawRect:(CGRect)rect
{
// UIKit已经封装了一些绘图的功能
// 创建路径
UIBezierPath *path = [UIBezierPath bezierPath];
// 设置起点
[path moveToPoint:CGPointMake(50, 50)];
// 添加一根线到某个点
[path addLineToPoint:CGPointMake(200, 200)];
// 绘制路径
[path stroke];
}
/**
* 画线的第二种方法
*/
- (void)drawLine1
{
// 1.获取图形上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 2.描述路径
// 设置起点
CGContextMoveToPoint(ctx, 50, 50);
// 添加一根线到某个点
CGContextAddLineToPoint(ctx, 200, 200);
// 渲染上下文
CGContextStrokePath(ctx);
}
/**
* 画线的第一种方式
*/
- (void)drawLine
{
// 1.获取图形上下文
// 目前我们所用的上下文都是以UIGraphics开头
// 目前使用到的类型和函数 一般都是以CG开头
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 2.描述路径
// 创建路径
CGMutablePathRef path = CGPathCreateMutable();
// 设置起点
CGPathMoveToPoint(path, NULL, 50, 50);
// 添加一根线到某点
CGPathAddLineToPoint(path, NULL, 200, 200);
// 3.把路径添加到图形上下文
CGContextAddPath(ctx, path);
// 4.渲染上下文
CGContextStrokePath(ctx);
}
@end