行数の多いテキストを表示したい。スクロール ビューに複数行ラベルを追加しましたが、何も表示されませんでした。これは、スクロール ビューを使用する正しい方法ではないようです。ユーザーが下にドラッグしてより多くのテキストを表示できるように、スクロール ビューを使用する方法は?
4 に答える
Apple のUIScollView ドキュメントは非常に優れています。そこから始めてクラスを理解する必要があります。
Scrollview は、画面がスライドする大きなビュー サーフェスと考えてください*。スクロールビューにサブビューを追加すると、スクロールはスクロールビューの上に画面を配置するようなものです。画面は、下のスクロールビューのコンテンツの一部を見ることができるウィンドウのように機能します。
これを行うために、スクロールビューには通常の UIView よりもいくつかの追加のプロパティがありますが、1 つの重要な点で UIView に似ています: それ自体はコンテンツを直接レンダリングしません。テキストを描画するには、サブビューを追加する必要があります。スクロールビューは、UIView とまったく同じ方法でセットアップおよび表示されます。つまり、フレームを設定して別のビューに追加し、テキストを表示するには、実際にテキストをレンダリングできる UIScrollView にサブビューを追加する必要があります。
要求する基本的な UIScrollView を設定するには、通常の全画面表示のように作成する必要があります。フレームをウィンドウと同じサイズに設定し、スクロールビューをウィンドウにサブビューとして追加します。次に、テキストを保持する大きな UITextView を作成します。UIText ビューは、好きなだけ大きくすることができます。具体的には、画面よりも大きくすることができます。UIScrollView の contentSize プロパティを UITextView のフレームと同じに設定し、UIText ビューを UIScrollView のサブビューとして追加します。
これが機能したら、contentOffset プロパティを使用してコンテンツを自動的に移動し、ズームを制御し、デリゲートを設定してスクロール イベントを監視できます。
* より正確には、フレームがスライドしますが、フルスクリーンの UIScrollView を作成していると仮定しています。より小さなビューが必要な場合は、一般化できると確信しています。
UITextView を使用するだけです。これは UIScrollView の子であり、テキスト プロパティをフレーム内に収まらない量のテキストに設定すると、ビューはスクロール可能になります。
私は自分のアプリケーションの 1 つで指示ペインに UIScrollView をこのように使用しました。うまくいきましたが、結果に不満がありました。その後、UIWebView の使用に切り替えたところ、結果に非常に満足しています。スクロール ビューのサイズ変更を自動的に処理し、HTML のすべての書式設定機能を取得し、別の HTML ファイルとデリゲート コードを追加するだけで、追加情報 (または外部サイト) に移動するリンクを作成できます。これが私が使用したコードです(そして、HTMLファイルをリソースとしてアプリに追加しました):
NSString *path = [[NSBundle mainBundle] pathForResource:@"instructions" ofType:@"html"];
NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path];
NSString *htmlString = [[NSString alloc] initWithData: [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding];
[self.instructionsView loadHTMLString:htmlString baseURL:nil];
このウェブサイトhttp://www.edumobile.org/iphone/iphone-programming-tutorials/scrollview-example-in-iphone/を参照してください。
iPhoneでスクロールビューを作成するには、ステップバイステップに従ってください...頑張ってください:)