我正在尝试根据内容调整UITextView的大小。如果它是多线的话我想调整高度,但是当文本非常短时,我想将宽度调整为内容。目前高度有效,但宽度不大。我试过了
UITextView *view = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, 300, 130)];
view.text = @"This is a test";
CGSize size = [view.text sizeWithFont:view.font constrainedToSize:CGSizeMake(300, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];
view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, size.width,size.height);
[self.view addSubview:view];
这是我最接近的。但是这并没有调整高度,并且正在切断文本中的最后一个单词(' test')。为了调整高度,我尝试了两种方法:
CGSize size = [view sizeThatFits:CGSizeMake(300, MAXFLOAT)];
view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, size.width,size.height);
和
[view sizeToFit];
[view layoutIfNeeded];
这两个都适用于高度,但似乎没有调整宽度(我不知道为什么他们不会为宽度工作..)