iOS開發UI篇—Quartz2D簡單使用(一)

 

1、畫直線app

代碼:spa

複製代碼

//
// YYlineview.m
// 03-畫直線
//
// Created by apple on 14-6-9.
// Copyright (c) 2014年 itcase. All rights reserved.
//3d

#import "YYlineview.h"code

@implementation YYlineviewblog


// 當自定義view第一次顯示出來的時候就會調用drawRect方法
- (void)drawRect:(CGRect)rect
{ip

// 1.取得和當前視圖相關聯的圖形上下文(由於圖形上下文決定繪製的輸出目標)/
// 若是是在drawRect方法中調用UIGraphicsGetCurrentContext方法獲取出來的就是Layer的上下文
CGContextRef ctx=UIGraphicsGetCurrentContext();//不須要*,同id

// 2.繪圖(繪製直線), 保存繪圖信息
// 設置起點
CGContextMoveToPoint(ctx, 20, 100);
//設置終點
CGContextAddLineToPoint(ctx, 300, 100);


//設置繪圖的狀態
//設置線條的顏色爲藍色
CGContextSetRGBStrokeColor(ctx, 0, 1.0, 0, 1.0);
//設置線條的寬度
CGContextSetLineWidth(ctx, 15);
//設置線條起點和終點的樣式爲圓角
CGContextSetLineCap(ctx, kCGLineCapRound);
//設置線條的轉角的樣式爲圓角
CGContextSetLineJoin(ctx, kCGLineJoinRound);
//3.渲染(繪製出一條空心的線)
CGContextStrokePath(ctx);

// //注意線條不能渲染爲實心的
// CGContextFillPath(ctx);



//設置第二條線
//設置第二條線的起點
CGContextMoveToPoint(ctx, 50, 200);
//設置次日線的終點(自動把上一條直線的終點當作起點)
CGContextAddLineToPoint(ctx, 300, 60);

//設置繪圖的狀態
// CGContextSetRGBStrokeColor(ctx, 1.0, 0.7, 0.3, 1.0);
//第二種設置顏色的方式
[[UIColor grayColor] set];
//設置線條的寬度
CGContextSetLineWidth(ctx, 10);
//設置線條的起點和終點的樣式
CGContextSetLineCap(ctx, kCGLineCapButt);

//渲染第二條線的圖形到view上
//繪製一條空心的線
CGContextStrokePath(ctx);
}it


@endio

 
 
複製代碼

效果:ast

2、畫三角形class

代碼:

複製代碼

//
// YYrectview.m
// 02-畫三角形
//
// Created by 孔醫己 on 14-6-10.
// Copyright (c) 2014年 itcast. All rights reserved.
//

#import "YYrectview.h"

@implementation YYrectview


- (void)drawRect:(CGRect)rect
{
//1.得到圖形上下文
CGContextRef ctx=UIGraphicsGetCurrentContext();

//2.繪製三角形
//設置起點
CGContextMoveToPoint(ctx, 20, 100);
//設置第二個點
CGContextAddLineToPoint(ctx, 40, 300);
//設置第三個點
CGContextAddLineToPoint(ctx, 200, 200);
//設置終點
// CGContextAddLineToPoint(ctx, 20, 100);
//關閉起點和終點
CGContextClosePath(ctx);

// 3.渲染圖形到layer上
CGContextStrokePath(ctx);

}


@end

複製代碼

效果:

提示:關閉起點和終點  CGContextClosePath(ctx);

3、畫四邊形

代碼:

複製代碼

//
// YYrect.m
// 03-畫四邊形
//
// Created by 孔醫己 on 14-6-10.
// Copyright (c) 2014年 itcast. All rights reserved.
//

#import "YYrect.h"

@implementation YYrect


- (void)drawRect:(CGRect)rect
{

//1.獲取圖形上下文
CGContextRef ctx=UIGraphicsGetCurrentContext();
//2.畫四邊形
CGContextAddRect(ctx, CGRectMake(20, 20, 150, 100));

// 若是要設置繪圖的狀態必須在渲染以前
// CGContextSetRGBStrokeColor(ctx, 1.0, 0, 0, 1.0);
// 繪製什麼類型的圖形(空心或者實心).就要經過什麼類型的方法設置狀態
// CGContextSetRGBFillColor(ctx, 1.0, 0, 0, 1.0);

// 調用OC的方法設置繪圖的顏色
// [[UIColor purpleColor] setFill];
// [[UIColor blueColor] setStroke];
// 調用OC的方法設置繪圖顏色(同時設置了實心和空心)
// [[UIColor greenColor] set];
[[UIColor colorWithRed:1.0 green:0 blue:0 alpha:1.0] set];


//3.渲染圖形到layer上
//空心的
CGContextStrokePath(ctx);
//實心的
// CGContextFillPath(ctx);

}


@end

 
 
複製代碼

提示:若是要設置繪圖的狀態必須在渲染以前。

效果(實心和空心):

      

4、畫圓

代碼1:

複製代碼

- (void)drawRect:(CGRect)rect
{

// 1.獲取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 畫圓
CGContextAddArc(ctx, 100, 100, 50, 0, 2 * M_PI, 0);

// 3.渲染 (注意, 畫線只能經過空心來畫)
// CGContextFillPath(ctx);
CGContextStrokePath(ctx);

}

複製代碼

效果:

代碼2:

複製代碼

 

// 畫圓
// 1.獲取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 2.畫圓
CGContextAddEllipseInRect(ctx, CGRectMake(50, 100, 50, 50));

[[UIColor greenColor] set];

// 3.渲染
// CGContextStrokePath(ctx);
CGContextFillPath(ctx); 複製代碼

效果:

代碼3:

複製代碼

// 畫橢圓
// 1.獲取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 2.畫圓
CGContextAddEllipseInRect(ctx, CGRectMake(50, 100, 100, 230));

[[UIColor purpleColor] set];

// 3.渲染
// CGContextStrokePath(ctx);
CGContextFillPath(ctx);

 
 
複製代碼

效果:

5、畫圓弧

代碼1:

複製代碼

// 畫圓弧
// 1.獲取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 2.畫圓弧
// x/y 圓心
// radius 半徑
// startAngle 開始的弧度
// endAngle 結束的弧度
// clockwise 畫圓弧的方向 (0 順時針, 1 逆時針)
// CGContextAddArc(ctx, 100, 100, 50, -M_PI_2, M_PI_2, 0);
CGContextAddArc(ctx, 100, 100, 50, M_PI_2, M_PI, 0);
CGContextClosePath(ctx);

// 3.渲染
// CGContextStrokePath(ctx);
CGContextFillPath(ctx);

複製代碼

效果:

代碼2:

複製代碼
// 1.獲取上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    // 2.畫餅狀圖
    // 畫線
    CGContextMoveToPoint(ctx, 100, 100);
    CGContextAddLineToPoint(ctx, 100, 150);
    // 畫圓弧
    CGContextAddArc(ctx, 100, 100, 50, M_PI_2, M_PI, 0);
    //    CGContextAddArc(ctx, 100, 100, 50, -M_PI, M_PI_2, 1);
    
    // 關閉路徑
    CGContextClosePath(ctx);
    [[UIColor brownColor]set];
    
    
    // 3.渲染 (注意, 畫線只能經過空心來畫)
    CGContextFillPath(ctx);
    //    CGContextStrokePath(ctx);
複製代碼

效果:

相關文章
相關標籤/搜索