UIScrollView を使用して動的フォームを作成しようとしていますがNSLog
、scrollViewを使用したときにcontentSize.height = 0.00000
、ストーリーボードの画面の幅と高さに合わせて scrollView を作成し、その中に要素があることに気付きました。では、なぜ 0 を返すのでしょうか。scrollView 内のすべての要素が正しく表示/機能しています。scrollView の contentSize のデフォルトは常に 0 で、設定するだけでよいですか?
3 に答える
はい、UIScrollView のコンテンツ サイズはデフォルトで 0 ゼロです。scrollView にスクロールを導入するには、 setScrollEnabled 、 Bounce の設定、水平/垂直スクロールの設定、 UIScrollView の最も重要な contentSize などの特定のプロパティを設定する必要があります。UIScrollView は、コンテンツのサイズが UIScrollView の Size よりも大きくない限り、スクロールできません。
ScrollView 内に UIView を配置してみてください。UIView に制約を設定しないでください。次に、すべてのフォーム コントロールを UIView 内に配置し、通常どおり制約します。
ここで重要なのは、フォームの下部制約の最後のコントロールを UIView (つまり、フォームの下部) に設定することです。これは、Autolayout を介して変換され、高さの値を持つだけでなく、フォームを垂直方向にスクロールできるようになります。また...
- scrollView.contentSize を設定しないでください
- translatesAutoresizingMaskIntoConstraints を設定しない (デフォルトのままにする)
- 制約を使用してフォーム (UIView) の高さを設定しないでください。これは Autolayout が行うことです。
- フォームに制約を設定しないでください (UIView)
注: フォーム (UIView) の幅をデバイスと同じにしたい場合は、ナビゲーション バー (つまり、すべてのコントロールがツリー スタイルでリストされている場所) でフォーム (UIView) を右クリックし、次に、それをメインのトップ UIView 要素にドラッグします。次に、ポップアップで等幅を選択します