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;
- }
结果如下图: