IOS开发(108)之Quartz 2D绘图实例演示
来源:互联网 发布:淘宝店铺首页无法打开 编辑:程序博客网 时间:2024/05/17 03:50
1 前言
本节将用一个简单的项目介绍如何用Quartz 2D绘制直线,矩形,椭圆和移动UIImage图片,通过触摸屏幕触发事件来决定起点和终点,废话多说,让我们来看看其是如何实现的。
2 详述
这个例子我们要创建一个类别,用于处理随即颜色的:
UIColor (ZYRandom)
#import "UIColor+ZYRandom.h"@implementation UIColor (ZYRandom)+(UIColor*)randomColor{ //静态变量,用来告诉我们方法是否是第一次调用 static BOOL seeded = NO; if(!seeded){ seeded = YES; //运行随即数字生成器 srandom(time(NULL)); } CGFloat red = (CGFloat)random()/(CGFloat)RAND_MAX; CGFloat green = (CGFloat)random()/(CGFloat)RAND_MAX; CGFloat blue = (CGFloat)random()/(CGFloat)RAND_MAX; return [UIColor colorWithRed:red green:green blue:blue alpha:1.0f]; }@end
建立一个头文件:
QuartzFunTest_ZYConstants_h
//检查QuartzFunTest_ZYConstants_h是否定义了,如果没有定义,才定义它#ifndef QuartzFunTest_ZYConstants_h#define QuartzFunTest_ZYConstants_h//形状选项typedef enum{ kLineShape = 0, kRectShape, kEllipseShape, kImageShape}ShapeType;//颜色选项typedef enum{ kRedColorTab = 0, kBlueColorTab, kYellowColorTab, kGreenColorTab, kRandomColoTab}ColorTabIndex;#define degressToRadian(x) (M_PI*(x)/180.0)#endif
一个自定义View:
ZYQuartzFunView
#import <UIKit/UIKit.h>#import "ZYConstants.h"@interface ZYQuartzFunView : UIView@property(nonatomic)CGPoint firstTouch;//第一次触碰屏幕的位置@property(nonatomic)CGPoint lastTouch;//结束时的位置@property(strong,nonatomic)UIColor* currentColor;//存放用户颜色选择@property(nonatomic)ShapeType shapeType;//绘制的形状@property(nonatomic,strong) UIImage* drawImage;//用于存放选择底部工具栏中最右侧项目时在屏幕上绘制的图像@property(nonatomic) BOOL useRandomColor;//是否请求随即颜色@property(readonly) CGRect currentRect;@property CGRect redrawRect;@end
并且在xib文件中将View视图的Class设置为我们的自定义视图ZYQuartzFunView
在设置底部ToolBar的时候放入的UISegmentedControl左侧和右侧放上Flexible Space Bar Button Item按钮来控制其位置。
ZYViewController代码:
#import <UIKit/UIKit.h>@interface ZYViewController : UIViewController@property (weak, nonatomic) IBOutlet UISegmentedControl *colorControl;- (IBAction)changeColor:(id)sender;- (IBAction)changeShape:(id)sender;@end
运行结果:
原状态:
直线:
矩形:
椭圆:
图片:
3 结语
以上是所有内容,希望对大家有所帮助。
Demo下载地址:http://download.csdn.net/detail/u010013695/5553407
- IOS开发(108)之Quartz 2D绘图实例演示
- IOS开发(107)之Quartz 2D绘图
- iOS开发之quartz 2d绘图基础
- iOS开发之Quartz 2D绘图技术(一)
- IOS 之 Quartz 2D 绘图(上)
- IOS 之 Quartz 2D 绘图(下)
- iOS 绘图 Quartz 2D
- ios--------------Quartz 2D 绘图
- 移动开发(IOS) – Quartz 2D绘图
- iOS开发 基本绘图/Quartz 2D/Core Image
- iOS开发-UI高级 Quartz 2D绘图
- iOS 开发 Quartz 2D+ UIBezierPath绘图大全详解
- iOS开发之Quartz 2D绘图高阶用法(二)
- iOS 2D绘图详解(Quartz 2D)之概述
- iOS 2D绘图详解(Quartz 2D)之路径(stroke,fill,clip,subpath,blend)
- iOS 2D绘图详解(Quartz 2D)之Transform(CTM,Translate,Rotate,Scale)
- iOS 2D绘图详解(Quartz 2D)之阴影和渐变(Shadow,Gradient)
- iOS 2D绘图详解(Quartz 2D)之Bitmap
- strtok函数及函数实现
- PHP性能优化大全(整理)
- Maven常用插件集合
- 分治法学习
- Qt pro文件使用
- IOS开发(108)之Quartz 2D绘图实例演示
- CoreText(三) CTFrameRef CTFramesetterRef CTLineRef
- 全营销:聚集三大媒体营销正能量
- TCP/IP - 函数到系统调用的过程
- 休闲小憩 康小孩的PROC问题
- JS跨域访问操作iframe
- android 4.2 dumpsys SurfaceFlinger 过程
- Asp.net 让浏览器无法自动保存密码的小技巧
- 测试编辑器