UIView的drawRect方法
自定义一个UIView类,代码如下:
MainView.h
#import <UIKit/UIKit.h>
@interface MainView : UIView {
}
@end
MainView.m
#import "MainView.h"
@implementation MainView
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
// Initialization code.
}
self.backgroundColor=[UIColor cyanColor];
return self;
}
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code.
//获得处理的上下文
CGContextRef context = UIGraphicsGetCurrentContext();
//设置线条样式
CGContextSetLineCap(context, kCGLineCapSquare);
//设置线条粗细宽度
CGContextSetLineWidth(context, 1.0);
//设置颜色
CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);
//开始一个起始路径
CGContextBeginPath(context);
//起始点设置为(0,0):注意这是上下文对应区域中的相对坐标,
CGContextMoveToPoint(context, 0, 0);
//设置下一个坐标点
CGContextAddLineToPoint(context, 100, 100);
//设置下一个坐标点
CGContextAddLineToPoint(context, 0, 150);
//设置下一个坐标点
CGContextAddLineToPoint(context, 50, 180);
//连接上面定义的坐标点
CGContextStrokePath(context);
}
- (void)dealloc {
[super dealloc];
}
@end
在Xcode中创建Application-Base项目:(这里项目名假设为 Test95)
Test95AppDelegate.h代码:
#import <UIKit/UIKit.h>
#import "MainView.h"
@interface Test95AppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
MainView *mainView;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
Test95AppDelegate.m中的didFinishLaunchingWithOptions方法代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
CGRect wholeWindow=CGRectMake(0, 20, 320, 320);
mainView=[[MainView alloc]initWithFrame:wholeWindow];
[self.window addSubview:mainView];
[self.window makeKeyAndVisible];
return YES;
}
结果如下图: