6

自動レイアウトを使用して作成されたストーリーボードがあります。そのストーリーボード内に、それぞれサイズが異なるいくつかの場所に UIViewControllerサブクラス( )を埋め込んでいます。のビューはxibで定義されます。ButtonGridViewControllerButtonGridViewController

必要なのは、ビュー全体ButtonGridViewControllerを単純に拡大縮小して、埋め込んでいるビューを埋めることです。古い支柱とばねの方法では、これは簡単でした。すべてのサブビューをサイズ変更するように設定するだけです。両方向に、そして出来上がり、ケーキ。

制約を使用して同じことを達成するにはどうすればよいですか?価値があるのは、xibには長方形のメインビューが含まれているだけで、2x2グリッドに配置された4つのサブビュー(それぞれボタン)があります。ボタンや間隔を含め、すべてを拡大縮小および/または拡大して、表示されるビュー全体に表示したいと思います。

ありがとう!

4

1 に答える 1

11

制約を使用して同じことを実現するには、スーパービューの先頭、末尾、上部、下部のスペースを0に設定する必要があります。以下を参照してください。

//load the ButtonGridViewController from a xib
[[NSBundle mainBundle] loadNibNamed:@"..." owner:self options:nil];

//get the view add it
[self.view addSubView:self.myGridView];

//turn off springs and struts
[self.view setTranslatesAutoresizingMaskIntoConstraints:NO];

//add constraints to fill parent view
NSArray *arr;

//horizontal constraints
arr = [NSLayoutConstraint constraintsWithVisualFormat:@"|[vw]|"
                                                options:0
                                                metrics:nil
                                              views:@{@"vw":self.myGridView}];
[self.view addConstraints:arr];

//vertical constraints
arr = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[vw]|"
                                                options:0
                                                metrics:nil
                                                  views:@{@"vw":self.myGridView}];
[self.view addConstraints:arr];
于 2013-02-12T01:09:56.683 に答える