2012年8月4日土曜日

CGPoint, CGSize, CGRectについて

CGPoint、CGSize、CGRectについて簡単にまとめます。

はじめ

このCGRect、CGPoint、CGSizeはクラスオブジェクトではなく構造体なので、変数を作るときは以下のようにします。

CGRect rect;

クラスオブジェクト型ではないのでアスタリスクは不要です。

CGPoint

対象オブジェクトの位置(座標)を管理する構造体です。
生成にはCGPointMakeを使用し、引数には「x座標,y座標」の順で指定します。
//座標(200, 100)の位置を生成する
CGPoint cgPoint = CGPointMake(200.0f, 100.0f);
NSLog(@"CGPoint -> %f %f", cgPoint.x, cgPoint.y);

CGSize

対象オブジェクトのサイズを管理する構造体です。
生成にはCGSizeMakeを使用し、引数には「幅, 高さ」の順で指定します。
//横100,縦200の大きさのオブジェクトを生成する
CGSize cgSize = CGSizeMake(100.0f, 200.0f);
NSLog(@"CGSize -> %f %f",cgSize.width, cgSize.height);

CGRect

対象オブジェクトの位置とサイズの両方を管理する構造体です。
生成にはCGRectMakeを使用し、引数には「座標x, 座標y, 幅, 高さ」の順で指定します。
//座標(100, 100)の位置に横100, 縦100のサイズのオブジェクトを生成する
CGRect rect = CGRectMake(100.0f, 100.0f, 100.0f, 100.0f);
NSLog(@"CGRect -> %f %f %f %f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);

おわり

これらは座標やサイズを管理するものですので以下のような意味不明なことをするともちろんエラーをはきます。
CGRect rect = CGRectMake(20, 20, 40, 32);
[self.view addSubview:rect];
なにを管理したらええねんと怒られます。

以下のように管理してほしいオブジェクトを初期化する際などに指定してあげます。
UIView *uiView = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,100)];
uiView.backgroundColor = [UIColor redColor];  //分かりやすいように色付け
[self.view addSubview:uiView];

参考記事

CGPoint, CGSize, CGRectを生成する方法 - iPhoneアプリ練習帳
サイズ指定(CGRect CGPoint CGSize) - iPhoneアプリ開発の虎の巻

0 件のコメント:

コメントを投稿