因為我也是在學習中,只是拿出來給大家分享,希望大家不要較真,現在咱們都是一年級新生,咳咳,好啦,不多說了,下面開始進入正題;
繪製一個圖形,首先我們肯定需要一個視圖view,在iOS中是UIView,下面用兩種方式介紹如何在iphone上顯示視圖;
首先創建一個項目 :(Window-based Application)
然後新建一個自訂的GameView類,繼承UIView類;
Ok,除了繼承UIVIew,其他什麼都不用修改和改動,下面介紹顯示視圖的兩種方式,
第一種方式: 利用Interface Builder工具進行視圖綁定;
按兩下當前項目的,MainWindow.xib,啟動 Interface Builder;
從Library中拖出一個VIew控制項至Window中,(調整view填充螢幕即可),然後修改此View關聯剛才創建的GameView的視圖類,
關聯其實就是在“Game View Identity”視圖框中將Class 指向 GameView即可;然後保存;完成!
第二種方式: 直接把定義的UIView添加到Window中;
(創建完專案,系統預設生成這兩個類。MyViewTestAppDelegate.h,MyViewTestAppDelegate.m )
修改 MyViewTestAppDelegate.h類,添加一個我們自訂的視圖類:
GameView *view;
然後修改MyViewTestAppDelegate.m,實例我們自訂的視圖類並且添加到window視圖中;
//CGRect drawingArea=[window bounds]; //確定視圖大小,這裡預設為整個螢幕大小(除了狀態列)
CGRect square = CGRectMake(0, 0, 320, 480);//自訂螢幕大小(除了狀態列)
[window addSubview:[[GameView alloc] initWithFrame:square]];
到此兩種顯示視圖的方法都介紹完了,其實都是類似,第一種通過視覺化操作,讓系統為我們生成視圖添加到window中的代碼關係,第二種則是我們通過代碼直接讓window添加自訂的視圖類的實例而已;當然到此是看不到任何效果的,因為視圖中沒有繪製任何的東西;
下面我們來在我們的視圖GameView中繪製個三角形吧;
其實繪製很容易,只要重寫UIView的 -(void) drawRect:(CGRect)rect; 函數即可;至於如何繪製三角形,這裡直接提供代碼,很簡單就不再詳細講解了,每行代碼我也有相對應的備註的;
GameView.m的完整代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
//
// 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点了 - -,回家回家。。咳咳;
沒有留言:
張貼留言