你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開辟中Quartz2D的根本應用方法舉例

iOS開辟中Quartz2D的根本應用方法舉例

編輯:IOS開發綜合

1、畫直線

代碼:

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

#import "YYlineview.h"

@implementation YYlineview


// 當自界說view第一次顯示出來的時刻就會挪用drawRect辦法
- (void)drawRect:(CGRect)rect
{

    // 1.獲得和以後視圖相干聯的圖形高低文(由於圖形高低文決議繪制的輸入目的)/
    // 假如是在drawRect辦法中挪用UIGraphicsGetCurrentContext辦法獲得出來的就是Layer的高低文
    CGContextRef  ctx=UIGraphicsGetCurrentContext();//不須要*,同id
   
    // 2.畫圖(繪制直線), 保留畫圖信息
    // 設置終點
    CGContextMoveToPoint(ctx, 20, 100);
    //設置起點
    CGContextAddL.netoPoint(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);
    //設置第二天線的起點(主動把上一條直線的起點當作終點)
    CGContextAddL.netoPoint(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);
}


@end

後果:

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615453287.png (322×283)

2、畫三角形

代碼:

//
//  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);
    //設置第二個點
    CGContextAddL.netoPoint(ctx, 40, 300);
    //設置第三個點
    CGContextAddLineToPoint(ctx, 200, 200);
    //設置起點
//     CGContextAddLineToPoint(ctx, 20, 100);
    //封閉終點和起點
    CGContextClosePath(ctx);
   
    // 3.襯著圖形到layer上
    CGContextStrokePath(ctx);
   
}


@end

後果:

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615453214.png (282×347)

提醒:封閉終點和起點  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

提醒:假如要設置畫圖的狀況必需在襯著之前。

後果(實心和空心):

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615453232.png (318×250)https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615453263.png (323×181)

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);
   
}

後果:

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615453292.png (304×245)

代碼2:

// 畫圓
    // 1.獲得高低文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    // 2.畫圓
    CGContextAddEllipseInRect(ctx, CGRectMake(50, 100, 50, 50));
   
    [[UIColor greenColor] set];
   
    // 3.襯著
    //    CGContextStrokePath(ctx);
    CGContextFillPath(ctx);

後果:

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615453232.png (259×211)

代碼3:

// 畫橢圓
    // 1.獲得高低文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    // 2.畫圓
    CGContextAddEllipseInRect(ctx, CGRectMake(50, 100, 100, 230));
   
    [[UIColor purpleColor] set];
   
    // 3.襯著
    //    CGContextStrokePath(ctx);
    CGContextFillPath(ctx);

後果:

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615453267.png (237×388)

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);

後果:

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615453209.png (280×264)

代碼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);

後果:

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615453219.png (263×247)

6、畫文字
代碼:

//
//  YYtextview.m
//  04-寫文字
//
//  Created by 孔醫己 on 14-6-10.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import "YYtextview.h"

@implementation YYtextview


- (void)drawRect:(CGRect)rect
{
   
    // 畫文字
    NSString *str = @"的額搜風搜分別了粉色發俄兩邊說法offFF瓦房你F答復F入會費WFH;飛;FN前往WFH;哦發貨;F答復;FHISFHSIFH我皮膚好APIFRHi分紅AWFHIOF威鋒網i";
   
    // 1.獲得高低文
    //    CGContextRef ctx = UIGraphicsGetCurrentContext();
    // 2.畫圖
    // 不推舉應用C說話的辦法繪制文字, 由於quraz2d中的坐標系和UIkit中的坐標系紛歧致, 繪制出來的文字是倒置的, 並且經由過程C說話的辦法繪制文字相當費事
    //    CGContextSelectFont(<#CGContextRef C#>, <#const char *name#>, <#CGFloat size#>, <#CGTextEncoding textEncoding#>)
    //    CGContextShowText(ctx, <#const char *string#>, <#size_t length#>)
   
    // 繪制矩形
    // 1.獲得高低文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    // 2.畫圖
    CGContextAddRect(ctx, CGRectMake(50, 50, 100, 100));
    // 3.襯著
    CGContextStrokePath(ctx);
   
   
//    NSMutableDictionary *md = [NSMutableDictionary dictionary];
//    // 設置文字色彩
//    md[NSForegroundColorAttributeName] =[UIColor redColor];
//    // 設置文字配景色彩
//    md[NSBackgroundColorAttributeName] = [UIColor greenColor];
//    // 設置文字年夜小
//    md[NSFontAttributeName] = [UIFont systemFontOfSize:20];
   
    //    將文字繪制到指導的地位
    //    [str drawAtPoint:CGPointMake(10, 10) withAttributes:md];
   
    //    將文字繪制到指定的規模內, 假如一行裝不下會主動換行, 當文字超越規模後就不顯示
    [str draWinRect:CGRectMake(50, 50, 100, 100) withAttributes:nil];
}


@end

後果:

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615453243.png (289×276)

圖片

代碼1:

//
//  YYimage.m
//  04-寫文字
//
//  Created by 孔醫己 on 14-6-10.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import "YYimage.h"

@implementation YYimage


- (void)drawRect:(CGRect)rect
{
 
    //    1.加載圖片到內存中
    UIImage *image = [UIImage imageNamed:@"me"];
   
   
    // 應用drawaspatternInRec辦法繪制圖片到layer, 是經由過程平鋪原有圖片
    [image drawaspatternInRect:CGRectMake(0, 0, 320, 480)];
}


@end

後果(平鋪):

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615453370.png (640×960)

代碼2:

#import "YYimage.h"

@implementation YYimage


- (void)drawRect:(CGRect)rect
{
 
    //    1.加載圖片到內存中
    UIImage *image = [UIImage imageNamed:@"me"];
   
   
    // 應用OC辦法將圖片繪制到layer上
 
    // 應用draWinRect辦法繪制圖片到layer, 是經由過程拉伸原有圖片
        [image draWinRect:CGRectMake(0, 0, 200, 200)];
   
    // 應用drawaspatternInRec辦法繪制圖片到layer, 是經由過程平鋪原有圖片
//    [image drawAsPatternInRect:CGRectMake(0, 0, 320, 480)];
}


@end

後果(拉伸圖片):

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615453393.png (284×272)

代碼3:

//
//  YYimage.m
//  04-寫文字
//
//  Created by 孔醫己 on 14-6-10.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import "YYimage.h"

@implementation YYimage


- (void)drawRect:(CGRect)rect
{
 
    //    1.加載圖片到內存中
    UIImage *image = [UIImage imageNamed:@"me"];
   
   
    // 應用OC辦法將圖片繪制到layer上
   
    // 將圖片繪制到指定的地位
    [image drawAtPoint:CGPointMake(100, 100)];
    }

後果(把圖片繪制到一個固定的地位):

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615453356.png (312×297)

【iOS開辟中Quartz2D的根本應用方法舉例】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved