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;
}

 

 

结果如下图: