天天看點

iOS開發之Core Graphics相關方法的簡單使用

最近用到一個開源庫,裡邊主要使用了Core Graphics架構的一些方法和函數。這裡就介紹一下架構中的簡單使用方法:

在iOS中,負責繪制視圖的方法是UIView中的drawRect:方法,但是預設情況下,drawRect:并不會做任何事,想要手動繪制視圖,就需要覆寫它。實作drawRect:的時候先要擷取一個繪圖上下文(drawing context,說實話,寫程式這麼長時間,看到context就頭疼,因為在中文中實在找不到一種讓人一目了然的翻譯)。它的作用就是維護各種繪圖狀态,如目前繪圖顔色,線條的粗細,并且繪制圖形。代碼示例:

#import <UIKit/UIKit.h>

@interface MyView : UIView

@end
           
#import "MyView.h"

@implementation MyView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

- (void)drawRect:(CGRect)rect
{
    //應用在想該視圖發送drawRect:消息之前,會建立一個上下文,這裡直接擷取目前上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    //擷取目前視圖大小
//    CGRect bounds = [self bounds];
    //設定線條寬度
    CGContextSetLineWidth(ctx, 5);
    //設定線條顔色,灰色
    CGContextSetRGBStrokeColor(ctx, 0.6, 0.6, 0.6, 1.0);
    //最後一個參數是是否順時針
    CGContextAddArc(ctx, 140, 100, 40, 0.0, M_PI*2.0, YES);
    //繪圖,上邊的CGContextAddArc并不會繪出圖形
    CGContextStrokePath(ctx);
}
@end
           

其實這種東西猛一看挺吓人的,寫兩遍就會發現,哦,原來就這樣啊……今天就先簡單介紹一下,先寫到這裡吧……對了,以上内容主要摘自《iOS程式設計(第三版)》……

繼續閱讀