最近用到一個開源庫,裡邊主要使用了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程式設計(第三版)》……