こんにちは。きんくまです。
Auto Layoutをすべてのものに適用してもよいのですが、
大枠はAuto Layoutにして各パーツは普通のframeを使ったレイアウトにしたい場合もあります。
例えば、ヘッダー、フッター、コンテンツ部分はAutoLayoutを使って、コンテンツ部分はframeを使いたいなどです。
そんなときのコードサンプルです。
今回の場合は赤い部分がAutoLayoutを使っていて、そのsubviewの青い部分はframeを使っています。
ARC利用
- (void)loadView { UIView *myView = [[UIView alloc] init]; myView.backgroundColor = [UIColor greenColor]; UIView *parentRedView = [[UIView alloc] init]; parentRedView.backgroundColor = [UIColor redColor]; UIView *childBlueView = [[UIView alloc] init]; childBlueView.backgroundColor = [UIColor blueColor]; [myView addSubview:parentRedView]; [parentRedView addSubview:childBlueView]; if([myView respondsToSelector:@selector(addConstraint:)]){ [myView setTranslatesAutoresizingMaskIntoConstraints:NO]; [parentRedView setTranslatesAutoresizingMaskIntoConstraints:NO]; NSMutableArray *constraints = [NSMutableArray array]; [constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"|-50-[parentRedView(==180)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings( parentRedView)]]; [constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-80-[parentRedView]-(<=30)-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(parentRedView)]]; [myView addConstraints:constraints]; }else{ parentRedView.frame = CGRectMake(50, 80, 180, 200); } childBlueView.frame = CGRectMake(20, 30, 80, 120); self.view = myView; }
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ