1

.xib ファイルのビューに自動レイアウト機能を追加しようとしています。目標は、正しい画面サイズに従ってビューを調整することです。

ビューに自動レイアウトを追加してフリーフォームを設定し、ビュー サイズを 568 に変更すると、ビューは iPhone 5 シミュレーターで正しく表示されますが、iPhone 4 で同じアプリを実行すると、下部にあるボタンを押しようとすると機能しません。ビューは正しく表示され、ボタンは機能しています。

何が欠けていますか?チュートリアルについて知っている人や、自動レイアウトなしで通常の xib を変換する方法に関する情報を見つけることができる場所を知っている人はいますか?

4

3 に答える 3

1

ボタンがスーパービューの上にない可能性があります。ボタンのスーパービューをスーパービューの下部に制限する必要があります。

残念ながら、何も表示されないため、それ以上のお手伝いはできません。

于 2012-09-27T12:58:08.680 に答える
0

私はパーティーに少し遅れていますが、ボタンを xib ファイルに追加するだけでなく、ボタンに制約を追加する必要があると思います。

AutoLayout チュートリアルへのリンクを次に示します。また、 WWDC セッションを視聴して、いくつかの洞察を得ることができます。

2012年

  • iOS および OS X の自動レイアウトの概要 (セッション 202)
  • 自動レイアウトをマスターするためのベスト プラクティス (セッション 228)
  • 例による自動レイアウト (セッション 232)


2013年

  • Xcode 5 で自動レイアウトを制御する (セッション 406)
于 2014-12-14T19:07:54.617 に答える
0

私は同じ問題に遭遇します。私の場合:

self.view
 \- ...
  \_self.wrapper
       \_self.button

コードが機能しません:

NSDictionary *metrics = @{@"padding":[NSNumber numberWithFloat:kGridPadding]};

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[head]-padding-[wrapper]-|" options:0 metrics:metrics views:views]];

その理由は、ボタンがまだ表示されているにもかかわらず、「wrapper」の高さが 0 であるためです。したがって、次のように十分な幅と高さを指定することで修正できます。

NSDictionary *metrics = @{@"padding":[NSNumber numberWithFloat:kGridPadding],
                          @"screenHeight":[NSNumber numberWithFloat:self.view.bounds.size.height]};

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[head]-padding-[wrapper(screenHeight)]-|" options:0 metrics:metrics views:views]];

--> より良い方法は、ラッパーの高さを自動的に増加させることですが、今それを行う方法がわかりませんか?

于 2013-11-15T08:44:07.163 に答える