UIView的drawRect方法
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;}?
?
?
结果如下图:
?
?
?
?
?
?