我有一个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
已设置无论textview中有多少行,都为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;
还有其他建议吗?
答案 0 :(得分: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高度。你能试试吗?