14

ストーリーボードとオートレイアウトを使って、iPhone4でもiPhone5でもうまく動くiOSアプリを作っています。以下は、ストーリー ボードを使用して作成しているビューのスクリーン ショットです。

ここに画像の説明を入力

上の画像では、スクロール ビューをスーパービューの先端と右のテーブル ビューの中央に配置したいと考えています。iPhone5でスクロールビューの幅を広げたくありません。さまざまな制約の組み合わせを試しましたが、達成できませんでした。

スクロール ビューが中央に表示されるように設定する必要があるすべての制約を教えてください。

4

2 に答える 2

46

ストーリーボードでビューを中央に配置する方法

この回答は Xcode 8 用に更新されました。

この回答は、ストーリーボードを使用して物事を中央に配置する方法について一般的な検索を行っているだけで、制約を理解していない人向けです。

ストーリーボード (XIB ファイルではない) と自動レイアウトを使用していると思います。これが最近のデフォルトなので、意味がわからなくても心配する必要はありません。ただし、確認したい場合は、プロジェクト ナビゲーターで Main.storyboard をクリックし、次にファイル インスペクターをクリックします。[自動レイアウトを使用] がオンになっていることを確認できます。

ここに画像の説明を入力

ストーリーボードでボタン (または中央に配置するビュー) を選択します。次に、右下の整列ボタンをクリックします。「容器に横置き」と「容器に縦置き」を選択します。「2 つの制約を追加」をクリックします。

ここに画像の説明を入力

まだ完全に中央に配置されていない場合は、もう 1 つ行う必要があるかもしれません。整列ボタンの 2 つ左にある [フレームの更新] ボタンをクリックします。これで、ビューがストーリーボードの中央に配置されます。

ここに画像の説明を入力

さらに重要なことは、アプリを実行すると、使用しているデバイスのサイズに関係なく、アプリが中央に配置されるようになりました。

これはもともと、ユーザー インターフェースの作成 – 自動レイアウトから学びました。基本的な考え方は同じですが、Xcode では UI の配置が少し変更されています。

こちらもご覧ください

于 2015-02-11T03:51:31.453 に答える
6

これを行うには、画面に追加のビューを追加する必要があります。

現時点では...

- UIView (main view)
    |
    | - scrollView
    | - tableView

このような別のビュー内にスクロールビューを配置する必要があります...

- UIView (main view)
    |
    | - UIView (spacer View)
    |    | - scrollView
    |
    | - tableView

今できることは、これらの制約を持つことです...

spacer view leading edge constraint to super view = 0
spacer view trailing edge to table view leading edge = 0
table view width = (whatever the width is)
table view trailing edge to super view = 0

これにより、スペーサー ビューとテーブル ビューがレイアウトされ、スペーサー ビューが大きくなります。

今、追加する必要があります...

scroll view width = x
scroll view height = y
scroll view centered vertically in super view
scroll view centered horizontally in super view.

現在、スクロール ビューのスーパー ビューはスペーサー ビューであるため、常にテーブル ビューと残りのスペースの間の中央に配置されます。

于 2013-07-29T07:41:42.470 に答える