在我的应用程序中,我需要在包含文本的textview中存储确切的区域(高度和宽度)。
我有一个宽度 300 的UITextView。现在假设用户会填写一些文本,这些文本只填充 150 ,即 50% TextView的宽度。我如何知道textview中有多少部分包含文本? ?我只想存储 150 而不是 300 ,即我需要排除不包含文本的textview的冗余部分。
但是,通过 textview.contentSize.height ,我可以获得准确的高度。 但 textview.contentSize.width 未提供适当的结果
任何建议????
答案 0 :(得分:2)
您需要在UITextView的范围内计算文本的大小:
CGSize textSize = [@"Some text" sizeWithFont:[UIFont boldSystemFontOfSize:12] forWidth:CGRectGetWidth(textView) lineBreakMode:UILineBreakModeCharacterWrap];
从此处可以使用textSize.height属性设置UITextView的高度。
请注意,您可能需要调整字体大小和forWidth:
大小以匹配您的UITextView,但这应该可以让您入门。
答案 1 :(得分:0)
这直接来自我的工作代码:
//Make the textView as big as needed for it to fit the message body
CGSize stringSize = [m.msg_body sizeWithFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:13]
constrainedToSize:CGSizeMake(self.view.frame.size.width, 9999)
lineBreakMode:UILineBreakModeWordWrap];
messageTextView.frame = CGRectMake(0, 0, stringSize.width, stringSize.height + 10);