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
/* 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
UIView
UIViewの種類を紹介します.この種類は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;
}
有关View的几个基础知识点-IOS开发_第1张图片 有关View的几个基础知识点-IOS开发_第2张图片
色とりどりの塊を見ましたか?ハハ、達成感がありますか?確かに達成感がないです.大きさと位置を正確に計算して、いくつかの変化があります.例えばDIV+CSSに戻った時のようです.確かに面白いです.このプログラムの足りないところは、色のブロックごとに色のマークを付けられないことです.急がないでください.次の授業があります.
プログラムを全部下に貼って、自由にダウンロードできます.でも、この文を転載して、有名な出所を覚えています.本当にお疲れ様でした.ありがとうございます.