Viewに関するいくつかの基礎知識点-IOS開発
宣言
転載を歓迎します.しかし、作者の労働成果を尊重してください.転載はこの枠内の声明を保留してください.ありがとうございます.文章の出所:http://blog.csdn.net/iukey
作者の書くのはとても疲れて、転載して出所を明記して下さい.ありがとうございます.http://blog.csdn.net/iukey/article/details/7083165
私はインタフェースを作るためにインタフェースをインタフェースにインタフェースを使うのではなく、Bを作るのではなく、viからxcodeに移行したばかりです.もちろん必要なら、私もそれを使います.一つのものの存在は決して良くも悪くもなく、ただ存在する時間と空間がその価値を決定しました.
(話し忘れました.私の環境はxcode 4.2です.)
まずいくつかの基本的な概念を理解します.
一)三つの構造体:CGPoid、CGS ize、CGRect
1. CGPoff
2. CGS ize
3.CGRect
この3つの構造体はいずれも同じヘッダファイルにあります.CGGeometry.h
いくつかの方法
1.GRectMake
三)いくつかの基本インターフェース要素:window(ウィンドウ)、ビュー(view)
画面に内容を表示するには、まずウィンドウベアラの内容を作成します.ウィンドウを作成するには、外枠情報を含む下部構造がCGRectである外枠が必要です.それぞれのオブジェクトをスクリーンに表示できるフレームがあり、彼の表示領域を定義していますが、多くの高層のビュークラスが自動的に計算されます.他のクラスはビュー初期化時にinit WithFrameの初期化方法によって設定されます.
もう一つの種類を知ってください.UScreenクラスは画面を表しています.このクラスを通じて、私たちはいくつかの欲しいものを得ることができます.
UIViewの種類を紹介します.この種類はUIsponderから継承されています.この名前を見ると、それが表示のためのキャンバスであることが分かります.もしwindowを額縁にたとえると.私達はずっと枠の上でキャンバスを取り除いて、交換してあるいは重ね合わせて、あるいはキャンバスの上でその他のキャンバスを重ねて、大きさはもちろん絵画者によって決定しました.キャンバスがあったら、上で好きなようにします.たくさんの簡単なものを倉庫の中の内容を張り出します.もしものが多すぎると、あまり良くないです.友達は自分で倉庫のファイルの中を見に行きましょう.このタイプはUID View.hの中にあります.まず基礎的なものを勉強します.他のものは後でゆっくりと展開します.
UICWindow
UICWindowはUID Viewから継承されていますが、この点に関しては論理的に障害があるかもしれません.額縁はどのようにキャンバスから継承されますか?あまりにも一途にならないでください.額縁の形はカンバスと同じではないですか?キャンバスを持って、それをいくつかの方法で強化します.額縁として使えますか?これもどうして一つのviewが直接に他のviewに追加できるのですか?
システムの初期化過程を見てください.
终わっていません.総合的な例で私の勉强の成果をまとめます.勉强したことをよく理解します.コードを书くからには、原理を理解しなければならないと思います.
1)新しいプロジェクトの選択Emptyアプリ 名前はLW 1 2です.appication didFinish Launching WithOptionsの中で、システムがもう一つの額縁を作ったことが分かります.今はシステムで作ってくれます.もちろん自分で額縁を作ることもできます.でも、必要ないです.言い忘れました.一つのアプリケーションは額縁しかありません.
色とりどりの塊を見ましたか?ハハ、達成感がありますか?確かに達成感がないです.大きさと位置を正確に計算して、いくつかの変化があります.例えばDIV+CSSに戻った時のようです.確かに面白いです.このプログラムの足りないところは、色のブロックごとに色のマークを付けられないことです.急がないでください.次の授業があります.
プログラムを全部下に貼って、自由にダウンロードできます.でも、この文を転載して、有名な出所を覚えています.本当にお疲れ様でした.ありがとうございます.
転載を歓迎します.しかし、作者の労働成果を尊重してください.転載はこの枠内の声明を保留してください.ありがとうございます.文章の出所:http://blog.csdn.net/iukey
作者の書くのはとても疲れて、転載して出所を明記して下さい.ありがとうございます.http://blog.csdn.net/iukey/article/details/7083165
私はインタフェースを作るためにインタフェースをインタフェースにインタフェースを使うのではなく、Bを作るのではなく、viからxcodeに移行したばかりです.もちろん必要なら、私もそれを使います.一つのものの存在は決して良くも悪くもなく、ただ存在する時間と空間がその価値を決定しました.
(話し忘れました.私の環境はxcode 4.2です.)
まずいくつかの基本的な概念を理解します.
一)三つの構造体:CGPoid、CGS ize、CGRect
1. CGPoff
/* Points. */
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
これを見て、もう分かりました.もう説明しません.2. CGS ize
/* Sizes. */
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
は説明しません.3.CGRect
/* Rectangles. */
struct CGRect {
CGPoint origin;//
CGSize size;
};
typedef struct CGRect CGRect;
も同じです.この3つの構造体はいずれも同じヘッダファイルにあります.CGGeometry.h
いくつかの方法
1.GRectMake
CG_INLINE CGRect
CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
{
CGRect rect;
rect.origin.x = x; rect.origin.y = y;
rect.size.width = width; rect.size.height = height;
return rect;
}
そうです.この方法はmakeのrectで、origgin(始点、左上角)を決めて、幅と高さを描くことができます.位置と大きさが決まっているrect(矩形)という関数をインライン関数として宣言します.この関数はまだ先の頭のファイルの中に隠れています.CGGeometry.h三)いくつかの基本インターフェース要素:window(ウィンドウ)、ビュー(view)
画面に内容を表示するには、まずウィンドウベアラの内容を作成します.ウィンドウを作成するには、外枠情報を含む下部構造がCGRectである外枠が必要です.それぞれのオブジェクトをスクリーンに表示できるフレームがあり、彼の表示領域を定義していますが、多くの高層のビュークラスが自動的に計算されます.他のクラスはビュー初期化時にinit WithFrameの初期化方法によって設定されます.
もう一つの種類を知ってください.UScreenクラスは画面を表しています.このクラスを通じて、私たちはいくつかの欲しいものを得ることができます.
CGrect screenBounds = [ [UIScreen mainScreen]bounds];// Rect
CGRect viewBounds = [ [UIScreen mainScreen]applicationFrame];// Rect
//screenBounds viewBounds
// screenBounds.origin.x== 0.0 ; screenBounds.oringin.y = 0.0;
screenBounds.size.width == 320; screenBounds.size.height == 480( )
// screenBounds.origin.x== 0.0 ; screenBounds.oringin.y = 20.0;( 20 ) screenBounds.size.width == 320; screenBounds.size.height == 480
UIViewUIViewの種類を紹介します.この種類はUIsponderから継承されています.この名前を見ると、それが表示のためのキャンバスであることが分かります.もしwindowを額縁にたとえると.私達はずっと枠の上でキャンバスを取り除いて、交換してあるいは重ね合わせて、あるいはキャンバスの上でその他のキャンバスを重ねて、大きさはもちろん絵画者によって決定しました.キャンバスがあったら、上で好きなようにします.たくさんの簡単なものを倉庫の中の内容を張り出します.もしものが多すぎると、あまり良くないです.友達は自分で倉庫のファイルの中を見に行きましょう.このタイプはUID View.hの中にあります.まず基礎的なものを勉強します.他のものは後でゆっくりと展開します.
UIView* myView =[[ UIView alloc]initWithFrame:CGRectMake(0.0,0.0,200.0,400.0)];// , , 。
このキャンバスを他のキャンバスに追加してもいいです.具体的な方法は後で説明します.このキャンバスに他の面白いものを描いてもいいです.詳しい状況は後で説明します.UICWindow
UICWindowはUID Viewから継承されていますが、この点に関しては論理的に障害があるかもしれません.額縁はどのようにキャンバスから継承されますか?あまりにも一途にならないでください.額縁の形はカンバスと同じではないですか?キャンバスを持って、それをいくつかの方法で強化します.額縁として使えますか?これもどうして一つのviewが直接に他のviewに追加できるのですか?
システムの初期化過程を見てください.
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
self.window.backgroundColor = [UIColor grayColor];// window
[self.window makeKeyAndVisible];// window
実戦演習:终わっていません.総合的な例で私の勉强の成果をまとめます.勉强したことをよく理解します.コードを书くからには、原理を理解しなければならないと思います.
1)新しいプロジェクトの選択Emptyアプリ 名前はLW 1 2です.appication didFinish Launching WithOptionsの中で、システムがもう一つの額縁を作ったことが分かります.今はシステムで作ってくれます.もちろん自分で額縁を作ることもできます.でも、必要ないです.言い忘れました.一つのアプリケーションは額縁しかありません.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];//
// Override point for customization after application launch.
// bounds aplicationFrame
CGRect bound = [[UIScreen mainScreen]bounds];
NSLog(@"boundwidth:%f boundheight:%f ",bound.size.width, bound.size.height);
NSLog(@"boundx:%f boundy:%f ",bound.origin.x, bound.origin.y);
CGRect appBound = [[UIScreen mainScreen]applicationFrame];
NSLog(@"appBoundwidth:%f appBoundheight:%f "
,appBound.size.width,appBound.size.height);
NSLog(@"appBoundx:%f appBoundy:%f ",appBound.origin.x, appBound.origin.y);
// , 320 X 100
CGRect CGone = CGRectMake(0.0, 0.0, 320, 100);// ,
UIView *v_one = [[UIView alloc]initWithFrame:CGone];// view
v_one.backgroundColor = [UIColor blueColor];//
[self.window addSubview:v_one];//
//
CGRect CGtwo = CGRectMake(0.0, 100, 160, 100);// 、
UIView *v_two = [[UIView alloc]initWithFrame:CGtwo];// view
v_two.backgroundColor = [UIColor redColor];//
[self.window addSubview:v_two];//
//
CGRect CGthree = CGRectMake(160, 100, 160, 100);//
UIView *v_three = [[UIView alloc]initWithFrame:CGthree];//
v_three.backgroundColor = [UIColor greenColor];//
[self.window addSubview:v_three];//
//
CGRect CGfour = CGRectMake(0.0, 260, 320, 200);//
UIView *v_four = [[UIView alloc]initWithFrame:CGfour];//
v_four.backgroundColor = [UIColor orangeColor];//
[self.window addSubview:v_four];//
// , , ,
,
CGRect CGfive = CGRectMake(100, 150, 160, 200);
UIView *v_five = [[UIView alloc]initWithFrame:CGfive];
v_five.backgroundColor = [UIColor yellowColor];
[self.window addSubview:v_five];
self.window.backgroundColor = [UIColor grayColor];//
[self.window makeKeyAndVisible];//
// release
[v_one release];
[v_two release];
[v_three release];
[v_four release];
[v_five release];
return YES;
}
色とりどりの塊を見ましたか?ハハ、達成感がありますか?確かに達成感がないです.大きさと位置を正確に計算して、いくつかの変化があります.例えばDIV+CSSに戻った時のようです.確かに面白いです.このプログラムの足りないところは、色のブロックごとに色のマークを付けられないことです.急がないでください.次の授業があります.
プログラムを全部下に貼って、自由にダウンロードできます.でも、この文を転載して、有名な出所を覚えています.本当にお疲れ様でした.ありがとうございます.