[Object-C語言隨筆之四]建立視圖並繪製簡單圖形


 李華明Himi 原創,轉載務必在明顯處註明:
轉載自 【黑米GameDev街區】 原文連接:  http://www.himigame.com/iphone-object/401.html


這段時間N忙,沒辦法,創業公司,固然抽時間也仍然再自學ios~OK,基礎的語言基礎,我就很少說了,從今天開始直接寫遊戲開發部分了;css

聲明一點:iOS遊戲開發系列沒有我寫的Android遊戲開發系列有權威性,由於我也是在學習中,只是拿出來給你們分享,但願你們不要較真,如今我們都是一年級新生,咳咳,好啦,很少說了,下面開始進入正題;html


繪製一個圖形,首先咱們確定須要一個視圖view,在iOS中是UIView,下面用兩種方式介紹如何在iphone上顯示視圖;ios

 首先建立一個項目:(Window-based Application)iphone

 


而後新建一個自定義的GameView類,繼承UIView類;函數



Ok,除了繼承UIVIew,其餘什麼都不用修改和改動,下面介紹顯示視圖的兩種方式,工具


第一種方式: 利用Interface Builder工具進行視圖綁定;學習

雙擊當前項目的,MainWindow.xib,啓動 Interface Builder;ui

從Library中拖出一個VIew控件至Window中,(調整view填充屏幕便可),而後修改此View關聯剛纔建立的GameView的視圖類,spa

關聯其實就是在「Game View Identity」視圖框中將Class 指向 GameView便可;而後保存;完成!.net




第二種方式: 直接把定義的UIView添加到Window中;

(建立完項目,系統默認生成這兩個類。MyViewTestAppDelegate.h,MyViewTestAppDelegate.m )

修改 MyViewTestAppDelegate.h類,添加一個咱們自定義的視圖類:

GameView *view;

而後修改MyViewTestAppDelegate.m,實例咱們自定義的視圖類而且添加到window視圖中;

       //CGRect drawingArea=[window bounds];  //肯定視圖大小,這裏默認爲整個屏幕大小(除了狀態欄)

       CGRect square = CGRectMake(00320480);//自定義屏幕大小(除了狀態欄)

       [window addSubview:[[GameView allocinitWithFrame:square]]; 


到此兩種顯示視圖的方法都介紹完了,其實都是相似,第一種經過可視化操做,讓系統爲咱們生成視圖添加到window中的代碼關係,第二種則是咱們經過代碼直接讓window添加自定義的視圖類的實例而已;固然到此是看不到任何效果的,由於視圖中沒有繪製任何的東西;

下面咱們來在咱們的視圖GameView中繪製個三角形吧;

其實繪製很容易,只要重寫UIView的   -(void) drawRect:(CGRect)rect; 函數便可;至於如何繪製三角形,這裏直接提供代碼,很簡單就再也不詳細講解了,每行代碼我也有相對應的備註的;

GameView.m的完整代碼:

//
//  GameView.m
//  MyViewTest
//
//  Created by Himi on 11-7-25.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//

#import "GameView.h"


@implementation GameView
-(void) drawRect:(CGRect)rect{
	//-------如下方式只用UIKIT 提供的畫圖類進行,此方式很是簡單
	//	CGRect recte = [self bounds];//自定義繪圖區域(大小默認屏幕大小)
	//	[[UIColor greenColor] set];//設置顏色爲綠色
	//	UIRectFill(recte);//填充綠色區域
	//	CGRect square = CGRectMake(50, 50, 100, 100);//自定義區域
	//	[[UIColor yellowColor] set];//設置顏色爲黃色
	//	UIRectFill(square);//填充黃色區域
	//	[[UIColor blackColor] set];//設置黑色
	//	UIRectFrame(square);//這裏不是填充,爲黃色區域繪製黑色邊框
	
	//-------如下方式只用CG 提供的畫圖類進行,此方式能夠繪製複雜的繪製
	//填充背景爲綠色
	[[UIColor greenColor]set];
	UIRectFill([self bounds]);
	//拿到當前視圖準備好的畫板
	CGContextRef context = UIGraphicsGetCurrentContext();
	//利用path進行繪製三角形
	CGContextBeginPath(context);//標記
	CGContextMoveToPoint(context, 50, 30);//設置起點
	CGContextAddLineToPoint(context, 10, 150);
	CGContextAddLineToPoint(context, 100, 150);	
	CGContextClosePath(context);//路徑結束標誌,不寫默認封閉
	[[UIColor yellowColor] setFill];
	[[UIColor blackColor] setStroke];
	CGContextDrawPath(context, kCGPathFillStroke);//繪製路徑path	
}

@end

項目截圖:



ok,本章節就介紹到這裏,都22點了 - -,回家回家。。咳咳;

源碼下載地址: http://www.himigame.com/iphone-object/401.html




原文連接: http://blog.csdn.net/xiaominghimi/article/details/6633172
相關文章
相關標籤/搜索