用于学校项目的iOS,我用标签动态填充我的UITextView(带有x和y位置)。但由于它有很多项目,所以项目的总长度大于iPhone屏幕高度。我预计会出现一个自动垂直滚动条,但它没有,所以用户不能下去阅读其余的文章。
如何添加?
感谢@elitalon解决方案:
scrollTextView.ContentSize = new SizeF(scrollTextView.Frame.Width, sizeH); // Works
而不是
scrollTextView.ContentSize.Height = sizeH; // Doesn't work
答案 0 :(得分: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
};