我必须以编程方式创建一个 UITextView,但在设置它的大小时遇到了一些麻烦。
假设我有一个句子,多行:
s = @"Hello World\nHello World\nHello World\n";
现在我想弄清楚我需要显示它的高度,并相应地设置我的 UITextView 的高度(需要固定宽度)。以下是我的代码:
CGSize size = [text sizeWithFont:_FONT_MYRIADPRO(20.0f) constrainedToSize:CGSizeMake(300, 1000)];
_textBox.text = text;
_textBox.frame = CGRectMake(10, 10, 300, size.height);
_textBox.font = _FONT_MYRIADPRO(20.0f);
_textBox.textColor = _COLOR_BLACK;
_textBox.backgroundColor = _COLOR_BLUE_DARK;
self.frame = CGRectMake(0, 0, 320, _textBox.frame.size.height + 2 * 10);
[self addSubview:_textBox];
然而,结果是这样的:
我尝试了许多其他方法,例如调用
[_textBox sizeToFit]
这也失败了,因为我想修复宽度。
我也试过
NSAttributedString *titleText = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName: _FONT_MYRIADPRO(20.0f)}];
CGRect bound = [titleText boundingRectWithSize:CGSizeMake(300, 1000) options:NSStringDrawingUsesLineFragmentOrigin context:nil];
_textBox.text = text;
_textBox.frame = CGRectMake(10, 10, 300, bound.size.height);
它也失败了,结果与上图相同。
有人可以帮我吗?