1

そのビューナビゲーションバーにビュー(320x480もiphone5と互換性を持たせる必要があります)があります(そのためにImageviewを使用しました)右クリックで高さと幅が140x140のビューを1つ表示したいので、右のようになりますメイン ビューに合わせて、ナビゲーション バーのすぐ下 (ビューの上部とも言えます)

そのため、コードの下に記述すると、サブビュー (ボタンがある) も正しく表示されず、クリックできません。

この場合、XIB を使用する必要はありません。これをプログラムで設定する必要があります。

[self.containerView addSubview:settingsView];


    [containerView addConstraint:[NSLayoutConstraint constraintWithItem:settingsView
                                                              attribute:NSLayoutAttributeTop
                                                              relatedBy:NSLayoutRelationEqual
                                                                 toItem:self.containerView
                                                              attribute:NSLayoutAttributeTop
                                                             multiplier:1.0
                                                               constant:0.0]];


    [containerView addConstraint:[NSLayoutConstraint constraintWithItem:settingsView
                                                              attribute:NSLayoutAttributeRight
                                                              relatedBy:NSLayoutRelationEqual
                                                                 toItem:self.containerView
                                                              attribute:NSLayoutAttributeRight
                                                             multiplier:1.0
                                                               constant:0.0]];

    [self.containerView addConstraints:constraints];

これで何か考えはありますか?なにが問題ですか?

4

1 に答える 1

1
  1. あなたのレイアウトがあいまいである可能性が非常に高いです。ビューを上部と右側に固定するようにシステムに指示しただけです。右上隅にある 1x1pt の小さなボックスにするだけでなく、スーパービュー全体を埋めることによって、これらの制約を満たすことができます。したがって、自動レイアウト システムは、ビューが十分に制限される前に、サブビューの幅と高さを計算する方法も知る必要があります。

    [containerView addConstraint:[NSLayoutConstraint constraintWithItem:settingsView
                                                          attribute:NSLayoutAttributeWidth
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:nil
                                                          attribute: 0
                                                         multiplier:1.0
                                                           constant:140.0]];
    
    
    [containerView addConstraint:[NSLayoutConstraint constraintWithItem:settingsView
                                                          attribute:NSLayoutAttributeHeight
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:nil
                                                          attribute:0
                                                         multiplier:1.0
                                                           constant:140.0]];
    
  2. translatesAutoresizingMaskIntoConstraintsサブビューのプロパティを に設定してくださいNO

それを試してみると、おそらくボタンも修正されるでしょう。

于 2013-07-30T06:40:16.577 に答える