4

ストーリーボードと自動レイアウトを使用しています。UIScrollView に Container View があります。コンテナー ビューを使用すると、ストーリーボードに長い (320、1000) ビューをレイアウトできます。UIScrollView のコンテンツ サイズを (320,1000) に設定しました。
ContainerView の次の制約を ScrollView に固定しました。
Width Equals: 320
Height Equals: 1,000
Top Space to: Superview
Align Center X to: Superview

Xcode は、追加の制約を追加することを主張します。これは、Superview Equals: -432 に Bottom Space を追加します。この制約を削除することはできません! これが以下の問題に影響するかどうかはわかりません。

iPhone 5 とシミュレーターの 4
インチ画面ではすべて正常に動作します。シミュレーターと iPhone4S の 3.5 インチ画面でテストすると、問題が発生します。スクロールするコンテンツのサイズが (320, 568) に制限され、ContainerView の下部セクションが失われます。

これが 3.5 インチの画面で機能しない理由を誰かが理解するのを手伝ってくれますか?

4

2 に答える 2

12

Apple Tech Support から回答を受け取りました。Xcode ではまだエラーが発生しますが、現在は 3.5 インチの画面で機能します。 答えは次のとおりです。

インターフェイス ビルダーがコンテナ ビューの下部をスクロール ビューのコンテンツ ビューの下部から 432 を引いた値に関連付けることを決定した理由はわかりません。レイアウトを完全に定義する必要があるため、この制約を削除することはできません [1]。ただし、その制約をユーザー制約にプロモートする場合は、定数値を編集してゼロにすることができます。これにより、コンテンツの下部が途切れる問題が修正されます。
Interface Builder で:
1) Container View を選択します。
2) Size インスペクタに切り替えます。
3) "Bottom Space to: Superview; Equals: -432.0" 制約の横にある歯車アイコンをクリックします。
4) メニューから [選択して編集] を選択します。
5) 定数フィールドにゼロの値を入力します。

[1]: 詳細については、テクニカル ノート 2154 の詳細な説明セクションを参照してください。https://developer.apple.com/library/ios/#technotes/tn2154/_index.html#//apple_ref/doc/uid/DTS40013309

于 2013-06-20T17:54:41.580 に答える
0

ビューを InterfaceBuilder の UIScrollView に埋め込むと、制約が自動的に設定されます。ビューが縦向きの画面よりも「長い」場合、スクロールしません。しかし、画面を回転させると、少しスクロールできることに気付くでしょう。AutoLayout で UIScrollView を取得するには、制約を調べます。「垂直スペース - スクロール ビュー - ビュー」を見つけて、「一定」から「自動」に設定すると、すべてが修正されました。

于 2013-09-28T10:51:34.343 に答える