每一個UIViewController都有一個默認的UIView,通常我們在xib文件中編輯的就是在默認的UIView上。
也可以自定義自己的UIView子類,然後加入到UIViewController中。
建立一個UIView子類GraphicsView : UIView。在UIViewController中的loadView方法中加入:
-(void)loadView{
GraphicsView *gv = [[GraphicsView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
[self setView:gv];
}
就把GraphicsView添加到了UIViewController中的默認UIView中了。
UIViewController的執行過程是這樣的,首先UIViewController調用loadView把自定義的UIView加入到默認View中,如果我們沒有重寫loadView方法,
那UIViewController就採用系統默認的UIView。把視圖View加載load以後,就調用viewDidLoad方法,在這個方法中進行視圖的另外的一些操作。
當這個視圖不再被顯示而且系統出現內存警告時候,會調用ViewDidUnload方法卸載這個視圖,所以最好在這個視圖當中release子視圖,要不當視圖釋放以後,
子視圖不能被釋放,就會造成內存泄露。
要自己繪圖,就要重寫GraphicsView中的drawRect方法,下面是畫條紅色的直線:
[[UIColor redColor]set];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 5.0);
CGContextMoveToPoint(context, 50.0f, 10.0f);
CGContextAddLineToPoint(context, 100.0f, 200.0f);
CGContextStrokePath(context);
下面是在View中顯示一張圖片
UIImage *image = [UIImage imageNamed:@"LRY.jpg"];
if(image == nil){
NSLog(@"load image fail");
}
[image drawAtPoint:CGPointMake(0, 0)];
在自定義的UIView子類中,重寫drawRect方法,我們可以做很多自定義的繪圖工作,提高程序的美觀,功能等。