UIScrollView中的UITextView - 动态高度?

时间:2013-12-03 10:20:40

标签: ios uiscrollview height uitextview

我有一个包含UIScroller的UIView - 它又包含几个标签,一个图像和一个动态文本视图。

文本视图可以包含从几个字符到2000个单词的任何内容 - 如何自动将相关高度应用于UITextView和父卷轴?

我有以下几点 -

//Set Scroller
[self.scrollerArticle setScrollEnabled:YES];
[self.scrollerArticle setContentSize:CGSizeMake(320, 750)];
[self.articleUITextView sizeToFit];
[self.articleUITextView layoutIfNeeded];

但是不知道如何将sizetofit方法应用于滚动条?

3 个答案:

答案 0 :(得分:4)

试试这个,

[self.scrollerArticle setContentSize:CGSizeMake(320, CGRectGetMaxY(self.articleUITextView.frame))];

答案 1 :(得分:1)

UITextView是UIScrollView的子类,您应该在设置文本后使用内容大小来获取大小:

self.articleUITextView.text = @"YOUR TEXT";
CGRect rec = self.articleUITextView.frame;
rec.size.height = self.articleUITextView.contentSize.height;
textView.frame = rec;

之后,您可以放弃滚动视图的contentSize。 如果你想使用sizeWithFont:它适用于UILabel,但UITextView不是必需的。

答案 2 :(得分:1)

您可以使用以下方法获取内容的高度。

-(CGFloat)getContentHeight{

NSString *aMessage = @"My Name is ABC"; // Can be anything between 0 to 2000 chars

CGSize maximumSize = CGSizeMake(320, 9999);

// Use the font you are willing to use for TexTView.
UIFont *textFont = [UIFont fontWithName:@"Helvetica-Bold" size:MessageFontSize];
CGSize myStringSize = [aMessage sizeWithFont:textFont
                   constrainedToSize:maximumSize
                       lineBreakMode:NSLineBreakByWordWrapping];

return myStringSize.height;
}

然后可以相应地设置Scrollview的ContentSize。