0

我有一个 uitextview,我正在尝试根据其中的文本调整大小。我正在使用以下代码:

[self.view addSubview:storyText];
[storyText sizeToFit];
[storyText layoutIfNeeded];
[storyText setScrollEnabled:NO];
CGRect frame = storyText.frame;
frame.size.height = storyText.contentSize.height;
frame.size.width = 280;
storyText.frame = frame;

框架肯定在调整大小,但问题是,它不会根据有多少行来调整大小,而是总是调整到 30 的高度。使用 NSLog,我确定contentSize无论那里有多少行,都将其设置为 30在文本视图中。我需要手动设置 contentSize,还是会根据内容占用的空间自行计算?如果是这样,为什么它总是在这里设置为 30?

更新:我按照建议尝试了以下方法,但没有成功。

[storyText setScrollEnabled:NO];
[storyText sizeToFit];
[storyText sizeThatFits:CGSizeMake(280,CGFLOAT_MAX)];
[storyText layoutIfNeeded];

CGRect storyFrame = storyText.frame;
storyFrame.size.height = storyText.contentSize.height;
storyFrame.size.width = 280;
storyText.frame = storyFrame;

还有其他建议吗?

4

1 回答 1

0

我尝试使用您的代码。我的代码:

UITextView *txtView = [UITextView new];
txtView.text = @"some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_";
txtView.scrollEnabled = NO;
[c.view addSubview:txtView];

CGSize size = [txtView sizeThatFits:CGSizeMake(280,CGFLOAT_MAX)];
txtView.frame = CGRectMake(.0f, .0f, size.width, size.height);

我得到了正确的textview高度。你能试试吗?

于 2013-11-10T06:48:54.673 回答