2

UIScrollView を使用して動的フォームを作成しようとしていますがNSLog、scrollViewを使用したときにcontentSize.height = 0.00000、ストーリーボードの画面の幅と高さに合わせて scrollView を作成し、その中に要素があることに気付きました。では、なぜ 0 を返すのでしょうか。scrollView 内のすべての要素が正しく表示/機能しています。scrollView の contentSize のデフォルトは常に 0 で、設定するだけでよいですか?

4

3 に答える 3

2

はい、UIScrollView のコンテンツ サイズはデフォルトで 0 ゼロです。scrollView にスクロールを導入するには、 setScrollEnabled 、 Bounce の設定、水平/垂直スクロールの設定、 UIScrollView の最も重要な contentSize などの特定のプロパティを設定する必要があります。UIScrollView は、コンテンツのサイズが UIScrollView の Size よりも大きくない限り、スクロールできません。

于 2013-05-01T16:41:48.690 に答える
1

ScrollView 内に UIView を配置してみてください。UIView に制約を設定しないでください。次に、すべてのフォーム コントロールを UIView 内に配置し、通常どおり制約します。

ここで重要なのは、フォームの下部制約の最後のコントロールを UIView (つまり、フォームの下部) に設定することです。これは、Autolayout を介して変換され、高さの値を持つだけでなく、フォームを垂直方向にスクロールできるようになります。また...

  1. scrollView.contentSize を設定しないでください
  2. translatesAutoresizingMaskIntoConstraints を設定しない (デフォルトのままにする)
  3. 制約を使用してフォーム (UIView) の高さを設定しないでください。これは Autolayout が行うことです。
  4. フォームに制約を設定しないでください (UIView)

注: フォーム (UIView) の幅をデバイスと同じにしたい場合は、ナビゲーション バー (つまり、すべてのコントロールがツリー スタイルでリストされている場所) でフォーム (UIView) を右クリックし、次に、それをメインのトップ UIView 要素にドラッグします。次に、ポップアップで等幅を選択します

于 2016-06-12T07:15:27.487 に答える