iPhone アプリでデータ入力フォームを作成していますが、画面に収まりきらないほど多くのデータ フィールドがあります。ユーザーがフォームをスクロールできるように、それらを UIScrollView に入れる必要があると考えました。これをInterface Builderで構築する最良の方法は何ですか? プログラムで実行できることはわかっていますが、可能であれば Interface Builder で実行したいと考えています。問題は、UILabels、UITextFields などをメインの iPhone 画面の外 (UIScrollView が役立つ画面の一部) に配置するにはどうすればよいかということです。
7 に答える
これは実際には簡単です。
MyScrollViewController などの新しいビュー コントローラ クラスを作成します。
UIScrollView を最上位ビューとして新しい xib を作成し、File's Owner のクラスを MyScrollView Controller に設定します。
ファイルの所有者のビュー属性をスクロール ビューに設定します
スクロールビューの下部をドラッグして、目的のサイズを作成します。
他のさまざまな UI 要素をスクロール ビューのサブビューとして配置する
MyScrollViewController.h でスクロール ビュー用の IBOutlet を作成して接続します。
@property (retain, nonatomic) IBOutlet UIScrollView *scrollView;
MyScrollViewController の viewDidLoad メソッドに、次のコード行を追加します。
self.scrollView.contentSize = self.scrollView.frame.size;
これですべてです!
「サイズ インスペクタ」の「スクロール ビュー サイズ」の「コンテンツ インセット」を設定します: Bottom = YourFrameHeight - ScreenHeight。UIScrollView の上から上、下から下の範囲でスクロールできるようになります
最終的に、これらすべてに対する賢明な解決策があり、それは UIScrollView 内に Container View を配置することです。Interface Builder は Container View 内の UIViewController を個別に表示するため、最終的には、指を交差させたり頭を上げたりしなくても、UIScrollView コンテンツがどのように見えるかを確認できます。
コンテンツのサイズをプログラムで設定する必要がありますが、少なくとも何が起こっているかを視覚化できるようになりました。
ダブルクリックしてUIScrollView
IBでそれ自体を開き、サイズを必要なサイズ以上に増やします(実行時にいつでも縮小できます)。あとは要素を追加するだけです。
編集: 動作しません -代わりにこちらを参照してください。
私も同じ問題を抱えていました。私がやったことは、別の UIView をその中に入れて、高さを好きなように設定することでした。次に、すべての UI 要素をその中に入れます。これにより、内側のビューを上下にドラッグできます。