830
技術社區[雲棲]
UIView的drawRect方法
UIView的drawRect方法
自定義一個UIView類,代碼如下:
MainView.h
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;
- }
結果如下圖:
最後更新:2017-04-04 07:03:39