最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS開發(fā)中Quartz2D的基本使用方式舉例

 更新時間:2015年11月24日 09:39:58   作者:文頂頂  
這篇文章主要介紹了iOS開發(fā)中Quartz2D的基本使用方式舉例,需要的朋友可以參考下

一、畫直線

代碼:

復制代碼 代碼如下:

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

#import "YYlineview.h"

@implementation YYlineview


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

    // 1.取得和當前視圖相關(guān)聯(lián)的圖形上下文(因為圖形上下文決定繪制的輸出目標)/
    // 如果是在drawRect方法中調(diào)用UIGraphicsGetCurrentContext方法獲取出來的就是Layer的上下文
    CGContextRef  ctx=UIGraphicsGetCurrentContext();//不需要*,同id
   
    // 2.繪圖(繪制直線), 保存繪圖信息
    // 設(shè)置起點
    CGContextMoveToPoint(ctx, 20, 100);
    //設(shè)置終點
    CGContextAddLineToPoint(ctx, 300, 100);
   
   
    //設(shè)置繪圖的狀態(tài)
    //設(shè)置線條的顏色為藍色
    CGContextSetRGBStrokeColor(ctx, 0, 1.0, 0, 1.0);
    //設(shè)置線條的寬度
    CGContextSetLineWidth(ctx, 15);
    //設(shè)置線條起點和終點的樣式為圓角
    CGContextSetLineCap(ctx, kCGLineCapRound);
    //設(shè)置線條的轉(zhuǎn)角的樣式為圓角
    CGContextSetLineJoin(ctx, kCGLineJoinRound);
    //3.渲染(繪制出一條空心的線)
    CGContextStrokePath(ctx);
   
//    //注意線條不能渲染為實心的
//    CGContextFillPath(ctx);
   
   
   
    //設(shè)置第二條線
    //設(shè)置第二條線的起點
    CGContextMoveToPoint(ctx, 50, 200);
    //設(shè)置第二天線的終點(自動把上一條直線的終點當做起點)
    CGContextAddLineToPoint(ctx, 300, 60);
   
    //設(shè)置繪圖的狀態(tài)
//    CGContextSetRGBStrokeColor(ctx, 1.0, 0.7, 0.3, 1.0);
    //第二種設(shè)置顏色的方式
    [[UIColor grayColor] set];
    //設(shè)置線條的寬度
    CGContextSetLineWidth(ctx, 10);
    //設(shè)置線條的起點和終點的樣式
    CGContextSetLineCap(ctx, kCGLineCapButt);
   
    //渲染第二條線的圖形到view上
    //繪制一條空心的線
    CGContextStrokePath(ctx);
}


@end


效果:

2015112492838729.png (322×283)

二、畫三角形

代碼:

復制代碼 代碼如下:

//
//  YYrectview.m
//  02-畫三角形
//
//  Created by 孔醫(yī)己 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.繪制三角形
    //設(shè)置起點
    CGContextMoveToPoint(ctx, 20, 100);
    //設(shè)置第二個點
    CGContextAddLineToPoint(ctx, 40, 300);
    //設(shè)置第三個點
    CGContextAddLineToPoint(ctx, 200, 200);
    //設(shè)置終點
//     CGContextAddLineToPoint(ctx, 20, 100);
    //關(guān)閉起點和終點
    CGContextClosePath(ctx);
   
    // 3.渲染圖形到layer上
    CGContextStrokePath(ctx);
   
}


@end


效果:

2015112492918030.png (282×347)

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

三、畫四邊形

代碼:

復制代碼 代碼如下:

//
//  YYrect.m
//  03-畫四邊形
//
//  Created by 孔醫(yī)己 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));
   
    // 如果要設(shè)置繪圖的狀態(tài)必須在渲染之前
    //    CGContextSetRGBStrokeColor(ctx, 1.0, 0, 0, 1.0);
    // 繪制什么類型的圖形(空心或者實心).就要通過什么類型的方法設(shè)置狀態(tài)
    //    CGContextSetRGBFillColor(ctx, 1.0, 0, 0, 1.0);
   
    // 調(diào)用OC的方法設(shè)置繪圖的顏色
    //    [[UIColor purpleColor] setFill];
    //    [[UIColor blueColor] setStroke];
    // 調(diào)用OC的方法設(shè)置繪圖顏色(同時設(shè)置了實心和空心)
    //    [[UIColor greenColor] set];
    [[UIColor colorWithRed:1.0 green:0 blue:0 alpha:1.0] set];
   
   
    //3.渲染圖形到layer上
    //空心的
    CGContextStrokePath(ctx);
    //實心的
//    CGContextFillPath(ctx);
   
}


@end


提示:如果要設(shè)置繪圖的狀態(tài)必須在渲染之前。

效果(實心和空心):

2015112493300257.png (318×250)2015112493318692.png (323×181)

四、畫圓

代碼1:

復制代碼 代碼如下:

- (void)drawRect:(CGRect)rect
{

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

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


效果:

2015112493344375.png (304×245)

代碼2:

復制代碼 代碼如下:

// 畫圓
    // 1.獲取上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    // 2.畫圓
    CGContextAddEllipseInRect(ctx, CGRectMake(50, 100, 50, 50));
   
    [[UIColor greenColor] set];
   
    // 3.渲染
    //    CGContextStrokePath(ctx);
    CGContextFillPath(ctx);

效果:

2015112493434968.png (259×211)

代碼3:

復制代碼 代碼如下:

// 畫橢圓
    // 1.獲取上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    // 2.畫圓
    CGContextAddEllipseInRect(ctx, CGRectMake(50, 100, 100, 230));
   
    [[UIColor purpleColor] set];
   
    // 3.渲染
    //    CGContextStrokePath(ctx);
    CGContextFillPath(ctx);

效果:

2015112493455286.png (237×388)

五、畫圓弧

代碼1:

復制代碼 代碼如下:

// 畫圓弧
    // 1.獲取上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    // 2.畫圓弧
    // x/y 圓心
    // radius 半徑
    // startAngle 開始的弧度
    // endAngle 結(jié)束的弧度
    // 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);

效果:

2015112493512249.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);
   
    // 關(guān)閉路徑
    CGContextClosePath(ctx);
    [[UIColor brownColor]set];
   
   
    // 3.渲染 (注意, 畫線只能通過空心來畫)
    CGContextFillPath(ctx);
    //    CGContextStrokePath(ctx);

效果:

2015112493532663.png (263×247)

六、畫文字
代碼:

復制代碼 代碼如下:

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

#import "YYtextview.h"

@implementation YYtextview


- (void)drawRect:(CGRect)rect
{
   
    // 畫文字
    NSString *str = @"的額搜風搜分手了粉色發(fā)俄雙方說法offFF瓦房你F回復F入會費WFH;飛;FN返回WFH;哦發(fā)貨;F回復;FHISFHSIFH我皮膚好APIFRHi分紅AWFHIOF威鋒網(wǎng)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];
//    // 設(shè)置文字顏色
//    md[NSForegroundColorAttributeName] =[UIColor redColor];
//    // 設(shè)置文字背景顏色
//    md[NSBackgroundColorAttributeName] = [UIColor greenColor];
//    // 設(shè)置文字大小
//    md[NSFontAttributeName] = [UIFont systemFontOfSize:20];
   
    //    將文字繪制到指點的位置
    //    [str drawAtPoint:CGPointMake(10, 10) withAttributes:md];
   
    //    將文字繪制到指定的范圍內(nèi), 如果一行裝不下會自動換行, 當文字超出范圍后就不顯示
    [str drawInRect:CGRectMake(50, 50, 100, 100) withAttributes:nil];
}


@end


效果:

2015112493630437.png (289×276)

圖片

代碼1:

復制代碼 代碼如下:

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

#import "YYimage.h"

@implementation YYimage


- (void)drawRect:(CGRect)rect
{
 
    //    1.加載圖片到內(nèi)存中
    UIImage *image = [UIImage imageNamed:@"me"];
   
   
    // 利用drawAsPatternInRec方法繪制圖片到layer, 是通過平鋪原有圖片
    [image drawAsPatternInRect:CGRectMake(0, 0, 320, 480)];
}


@end


效果(平鋪):

2015112493720482.png (640×960)

代碼2:

復制代碼 代碼如下:

#import "YYimage.h"

@implementation YYimage


- (void)drawRect:(CGRect)rect
{
 
    //    1.加載圖片到內(nèi)存中
    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


效果(拉伸圖片):

2015112493741876.png (284×272)

代碼3:

復制代碼 代碼如下:

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

#import "YYimage.h"

@implementation YYimage


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


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

2015112493758442.png (312×297)

相關(guān)文章

  • iOS App使用GCD導致的卡頓現(xiàn)象及解決方法

    iOS App使用GCD導致的卡頓現(xiàn)象及解決方法

    這篇文章主要給大家介紹了關(guān)于iOS App使用GCD導致的卡頓現(xiàn)象及解決方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • iOS 截取字符串中兩個指定字符串中間的字符串方法

    iOS 截取字符串中兩個指定字符串中間的字符串方法

    下面小編就為大家分享一篇iOS 截取字符串中兩個指定字符串中間的字符串方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 淺析iOS的Xcconfig

    淺析iOS的Xcconfig

    本篇文章介紹IOS中Xcconfig的相關(guān)知識內(nèi)容,有興趣的朋友學習下吧。
    2018-01-01
  • iOS Remote Notification遠程消息推送處理

    iOS Remote Notification遠程消息推送處理

    這篇文章主要為大家詳細介紹了iOS Remote Notification遠程消息推送處理,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Android NavigationController 右滑手勢詳解

    Android NavigationController 右滑手勢詳解

    目前蘋果手機在人機交互中盡力做到極致,在ios7中,新增了一個小小功能,用戶不用點擊右上角的返回按鈕,在屏幕左邊一滑,就會返回。下面給大家詳解Android NavigationController 右滑手勢,需要的朋友可以參考下
    2015-08-08
  • iOS自定義UICollectionViewFlowLayout實現(xiàn)圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現(xiàn)圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現(xiàn)圖片瀏覽效果的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • 針對iOS開發(fā)的一些Xcode使用技巧小結(jié)

    針對iOS開發(fā)的一些Xcode使用技巧小結(jié)

    這篇文章主要介紹了針對iOS開發(fā)的一些Xcode使用技巧小結(jié),Xcode是Mac上編寫iOS應(yīng)用的開發(fā)環(huán)境,需要的朋友可以參考下
    2015-12-12
  • Flutter CustomPaint自定義繪畫示例詳解

    Flutter CustomPaint自定義繪畫示例詳解

    這篇文章主要為大家介紹了Flutter CustomPaint自定義繪畫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • iOS應(yīng)用中使用Auto Layout實現(xiàn)自定義cell及拖動回彈

    iOS應(yīng)用中使用Auto Layout實現(xiàn)自定義cell及拖動回彈

    這篇文章主要介紹了iOS應(yīng)用中使用Auto Layout實現(xiàn)自定義cell及拖動回彈的方法,自定義UITableViewCell并使用Auto Layout對其進行約束可以方便地針對多尺寸屏幕進行調(diào)整,代碼為Swift語言,需要的朋友可以參考下
    2016-03-03
  • iOS開發(fā)中簡單實用的幾個小技巧

    iOS開發(fā)中簡單實用的幾個小技巧

    大家可能都知道,在開發(fā)過程中我們總會遇到各種各樣的小問題,有些小問題并不是十分容易解決。在此我就總結(jié)一下,我在開發(fā)中遇到的各種小問題,以及我的解決方法,也算是些小技巧吧,分享給大家,方便大家在iOS開發(fā)的時候能夠參考借鑒,下面有需要的朋友一起來看看吧。
    2016-11-11

最新評論

神池县| 临沧市| 天柱县| 巩义市| 周口市| 日喀则市| 台东市| 互助| 黑山县| 和龙市| 富平县| 上虞市| 五莲县| 桦南县| 阳春市| 新化县| 建瓯市| 铁岭县| 张北县| 宣化县| 潜江市| 蒙城县| 德庆县| 容城县| 英吉沙县| 大足县| 大港区| 麻阳| 高邮市| 蒲江县| 司法| 临颍县| 德钦县| 贡觉县| 项城市| 罗平县| 喜德县| 双江| 昆山市| 鹤庆县| 边坝县|