5

自動レイアウトをオフにし、デフォルト設定をIphone 5に設定したアプリを開発しています。画面の下部にUIViewがあり、IBのサイズオプションを切り替えると、UIViewが正しく上に移動して、下に固定されます。画面の。ただし、iPhone 4またはシミュレーターでテストすると、上に移動せず、代わりにカットオフされます。

アプリの下部にあるUIViewが小さいiPhone4用に上向きにシャントされるようにするにはどうすればよいですか?

次の例を参照してください

基本的に、白いボックスを上向きにシャントして、灰色のボックスの下の隙間を埋めたいと思います。

アップデート

ビュー階層に関しては、包含ビューがあり、表示される白いセクションは、内部にスクロールビューがある単純なUIView(白い背景)です。プロジェクトはかなり新しいため、セットアップは非常に簡単で、UIViewを配置するコードはありません。

4

5 に答える 5

8

Y座標を取得するには、画面の高さを取得し、メインビューの上のUI要素(ステータスバーなど)を減算して、配置しているUIViewの高さを減算します。例えば:

float y = [UIScreen mainScreen].bounds.size.height - [UIApplication sharedApplication].statusBarFrame.size.height - myView.frame.size.height;
[myView setFrame:CGRectMake(0, y, myView.frame.size.width, myView.frame.size.height)];

これは本当に典型的な完全な例です...2013...これは上部にナビゲーションバーがあるUITableViewControllerでうまく機能し、自動レイアウトを使用していません

親ビューの下部を基準にしてUIViewを配置しますか?

それが誰かを助けることを願っています。

于 2013-02-13T17:50:10.557 に答える
3

スプリングとストラット(自動サイズ変更マスク)を次のように設定する必要があります...

ここに画像の説明を入力してください

その後、ビューは画面の下部からの距離を維持します。

アップデート

あなたのコメントでは、あなたはこれが正しく設定されているが、ビューはまだ押し下げられていると言います。ただし、質問の画像は同じように比較されません。4インチバージョンでは、ビューが画面の上部より上にスクロールされているように見えますが、3.5インチバージョンの場合はそうではありません。そこに原因があるのではないかと思います(または、画面上の問題に合わせて4インチ上にスクロールする必要があったのでしょうか?)...ビュー階層の詳細を確認して、質問を更新できますか?

于 2013-02-13T17:52:11.470 に答える
2

AutoLayoutをオフにすると、画面上のビューを配置する場所は固定値になります。この自動調整を行うには、いくつかのコードが必要です。を使用する必要がありますautoresizingMask。autoresizingMask/の使用例を次に示します。

UIView *view = [[UIView alloc] init];
[view setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin];
于 2013-02-13T17:51:35.833 に答える
1

これを行う最も簡単な方法は、ビューを選択してから、[エディター]->[ピン]->[SuperViewへの下部スペース]に移動することです。このオプションは、デバイスの解像度に関係なく、ビューをコンテナビューの下部に固定します。

于 2014-01-10T18:53:43.143 に答える
1

@Joelの回答を拡張すると、iOS 7の場合、statusBarの高さを差し引く必要はありません。

float y = [UIScreen mainScreen] .bounds.size.height --myView.frame.size.height;
[myView setFrame:CGRectMake(0、y、myView.frame.size.width、myView.frame.size.height)];
于 2014-09-03T22:40:50.120 に答える