1

メインページビューの設定があります。この中に、アウトレットに設定された子ビューがあります。このアウトレットを介して、別の xib ファイルをページに挿入しています。

デバイスの向きに合わせて成長/縮小するように、この挿入された xib にどのプロパティを設定できますか? メイン ビュー内の直接の子ビューは拡大および縮小できますが、この子ビューの注入されたコンテンツは常に固定幅のようです。ランドスケープの赤い領域をカバーするために、それらを拡張するにはどうすればよいですか?

Nb私はインターフェイス ビルダーを使用してこれを作成するデザイナーです。インターフェイスビルダーを介してこれを解決できる回答をいただければ幸いです。そうでない場合は、コードの回答を歓迎します (最後の手段としてのみ)。

セットアップを示す図を参照してください。 ここに画像の説明を入力

4

2 に答える 2

4

現在の blueView はそのスーパービューを理解していないため、xib 自体に制約を設定することはできず、コードで行う必要があると考えるのは正しいと確信しています。

コードでそれを行うには、redView が上の図の赤いビューへの Iboutlet であると仮定します。

nib を使用して blueView を作成しますが、translatesAutoresizingMaskIntoConstraints が no に等しいことを確認してください。

    CustomView *blueView = [CustonView alloc] init]; // or what not
    // atached the xib, should really be done in init of CustomView
    NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"myXib" owner:self options:nil];
    UIView *mainView = [subviewArray objectAtIndex:0];
    [blueView addSubview:mainView];


    blueView.translatesAutoresizingMaskIntoConstraints = NO;
    [self.redview addSubview:blueView]

制約を追加します。

    [self.redView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[blueView]|" options:0 metrics:nil views:@{@"blueView":blueView}]];
    [self.redView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[blueView]|" options:0 metrics:nil views:@{@"blueView":blueView}]];

ブーレンジャー

于 2013-09-03T14:40:21.777 に答える
-2

redViewのみがある場合はblueSubView、次のようにアクセスできます

UIView *blueView = [redView SubViews]ObjectAtIndex:0];

now you canset the frame of blueSubView.

[blueView setframe:CGRectMake(100,100,100,100)];

これがお役に立てば幸いです。

于 2013-09-03T14:27:41.063 に答える