1

学校のプロジェクト用の iOS で、UITextView にラベル (x と y の位置) を動的に入力します。しかしアイテム数が多いので、アイテムの全長がiPhoneの画面の高さよりも大きくなっています。自動垂直スクロール バーが表示されると思っていましたが、表示されないため、ユーザーは下に移動して残りの記事を読むことができません。

どうすれば追加できますか?

@elitalon のおかげで解決:

scrollTextView.ContentSize = new SizeF(scrollTextView.Frame.Width, sizeH); // Works

それ以外の

scrollTextView.ContentSize.Height = sizeH; // Doesn't work
4

1 に答える 1

1

あなたが達成したいことを正確に理解していないかもしれませんが、問題はUITextViewクラスの誤用だと思います。UITextViewドキュメントが言うように:

UITextView クラスは、スクロール可能な複数行テキスト領域の動作を実装します」

したがって、理想的には、UILabelオブジェクトを に追加しないでくださいUITextView。代わりに、表示する記事ごとにUILabelとを作成UITextViewします。

UILabel *article1Label = [[UILabel alloc] initWithFrame:label1Frame];
UITextView *article1Text = [[UITextView alloc] initWithFrame:text1Frame];

UILabel *article2Label = [[UILabel alloc] initWithFrame:label2Frame];
UITextView *article2Text = [[UITextView alloc] initWithFrame:text2Frame];

...

ユーザーにすべての記事をスクロールして読んでもらいたい場合は、これらすべてのサブビューをUIScrollViewオブジェクトに追加できます。

UIScrollView *articlesScrollView = [[UIScrollView alloc] initWithFrame:scrollViewFrame];
[articlesScrollView addSubview:article1Label];
[articlesScrollView addSubview:article1Text];
[articlesScrollView addSubview:article2Label];
[articlesScrollView addSubview:article2Text];

最後に、UIScrollViewサブビューのすべての高さを加算してコンテンツ サイズを計算します。例えば:

CGFloat totalHeight = article1Text.frame.size.height + article2Text.frame.size.height;
articleScrollView.contentSize = {
  .width = articleScrollView.bounds.size.width,
  .height = totalHeight
};
于 2013-04-20T16:05:58.943 に答える