UIViewは画面表示を管理するクラスです。
ボタン、ラベルなどの各種コントロールクラスはこのクラスを継承しています。
イベント処理なども備えており、タッチイベントの受け取りなども行うことができます。
また、1つ以上のサブビューを管理することができるのも特徴です。
UIViewの宣言
UIView *vi = [[UIView alloc] init];
// 位置、サイズを指定しながら生成 UIView *vi = [[UIView alloc] initWithFrame:CGRectMake(100,180,120,120)]; |
主要なプロパティ
frame
位置、サイズを指定する
例)vi.frame = CGrectMake(100,180,120,120);
center
対象の中心位置を指定する
例)vi.center = CGPointMake(160, 240);
backgroundColor
背景色を設定する
例)vi.backgroundColor = [UIColor whiteColor];
hidden
対象の表示/非表示を指定する
例)vi.hidden = YES;
tag
タグ番号を付ける
例えば、同じようなボタンが複数あった場合、どのボタンが押されたかなどを見極める為に使うと良い。
例)vi.tag = 0;
alpha
透過値を設定する
0.0 〜 1.0 の間で設定することが出来、0.0 で透過率 100% 、1.0 で透過率 0% となる。
例)vi.alpha = 0.8;
superview
対象の親のUIViewクラスを取得する
例)[vi superview];
subviews
対象の子のUIViewクラスを取得する
冒頭でも説明した通り、UIViewには1つ以上のサブビューを設置することが出来るため、返り値はNSArrayとなっています
例)NSArray *ar = [vi subviews];
transform
対象の拡大、縮小、回転などを行う
設定できる値の一覧 |
UIViewAnimationTransitionFlipFromLeft |
右回転する |
UIViewAnimationTransitionFlipFromRight |
左回転する |
UIViewAnimationTransitionCurlUp |
上向きにカーリングする |
UIViewAnimationTransitionCurlDown |
下向きにカーリングする |
UIViewAnimationTransitionNone |
トランジション指定なし |
// 2倍のサイズにしてみる
例)vi.transform = CGAffineTransformMakeScale(2, 2);
// 元の角度から90度回転させる
例)vi.transform = CGAffineTransformMakeRotation(M_PI/2);
autoresizingMask
ビューの幅・高さなど、可変、もしくは固定にするかを設定
親ビューのサイズが変更となった場合にも、同様に四辺を変更させるかを指定できる
設定できる値の一覧 |
UIViewAutoresizingFlexibleTopMargin |
上を自動調整 |
UIViewAutoresizingFlexibleBottomMargin |
下を自動調整 |
UIViewAutoresizingFlexibleRightMargin |
右を自動調整 |
UIViewAutoresizingFlexibleLeftMargin |
左を自動調整 |
UIViewAutoresizingFlexibleWidth |
幅を自動調整 |
UIViewAutoresizingFlexibleHeight |
高さを自動調整 |
UIViewAutoresizingNone |
自動調整なし |
// 対象のビューを親ビューの右下に固定してみる
例)vi.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin;
contentMode
サイズが変更された際などの調節方法を設定
設定できる値の一覧 |
UIViewContentModeScaleToFill |
UIViewの大きさに合わせる |
UIViewContentModeScaleAspectFit |
縦横比を崩さずにUIViewの大きさに合わせる |
UIViewContentModeScaleAspectFill |
UIViewの大きさに合わせて切り抜かれる |
UIViewContentModeCenter |
中央に表示 |
UIViewContentModeTop |
上に表示 |
UIViewContentModeBottom |
下に表示 |
UIViewContentModeRight |
右に表示 |
UIViewContentModeLeft |
左に表示 |
UIViewContentModeTopRight |
右上に表示 |
UIViewContentModeTopLeft |
左上に表示 |
UIViewContentModeBottomRight |
右下に表示 |
UIViewContentModeBottomLeft |
左下に表示 |
// UIViewの大きさに合わせて、比率を変えずに表示させる
例)vi.contentMode = UIViewContentModeScaleAspectFit;
主要なインスタンスメソッド
addSubView:
- (void)addSubView:(UIView *)view
対象のビュー(親ビュー)に対してサブビューを追加する
例)[self.view addSubView:vi];
drawRect
- (void)drawRect:(CGRect)rect
図形を描画する
sizeToFit
- (void)sizeToFit
UIViewの大きさを対象のコンテンツに合わせる
例)[vi sizeToFit];
bringSubviewToFront:
- (void)bringSubviewToFront:(UIView*)view
指定したサブビューのインデックスを親ビュー内の一番手前に移動する
例)[self.view bringSubviewToFront:vi];
exchangeSubviewAtIndex:withSubviewAtIndex:
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2
指定した2つのサブビューのインデックスを入れ替えます
// 0 番目と 1 番目のサブビューを入れ替える
例)[self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
sendSubviewToBack:
- (void)sendSubviewToBack:(UIView *)view
指定したサブビューのインデックスを親ビュー内の一番後ろに移動する
例)[self.view sendSubviewToBack:vi];
最終更新:2013年04月23日 20:21