如何将滚动条添加到textview?

时间:2013-04-20 14:00:12

标签: ios textview scrollbar xamarin

用于学校项目的iOS,我用标签动态填充我的UITextView(带有x和y位置)。但由于它有很多项目,所以项目的总长度大于iPhone屏幕高度。我预计会出现一个自动垂直滚动条,但它没有,所以用户不能下去阅读其余的文章。

如何添加?

感谢@elitalon解决方案:

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

而不是

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

1 个答案:

答案 0 :(得分:1)

也许我不明白你想要达到的目标,但我认为这个问题是对UITextView类的误用。正如UITextView文档所说:

  

UITextView类实现可滚动的多行文本区域的行为“

理想情况下,您不应将UILabel个对象添加到UITextView。相反,我会为您要展示的每篇文章创建UILabelUITextView

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
};