我正在努力解决设置UITextView
高度的问题,这取决于其内容。
最后,我找到一个效果很好的解决方案,但它警告我这里使用的方法sizeWithFont
已弃用。
当我尝试将旧方法修改为新方法时,我得到了一个"黄色"警告,我想将其修改为新的boundingRectWithSize:options:attributes:context
方法。
我想要修改我的代码:
-(void)configureTextView {
CGSize textViewSize = [self.descriptionStringShort sizeWithFont:[UIFont fontWithName:@"Marker Felt" size:20]
constrainedToSize:CGSizeMake(self.myTextView.frame.size.width, FLT_MAX)
lineBreakMode:UILineBreakModeTailTruncation];
CGRect frame = self.myTextView.frame;
frame.size.height = textViewSize.height;
self.myTextView.frame = frame;
}
答案 0 :(得分:1)
试试这个
CGSize textViewSize = [self.descriptionStringShort sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(210.0f, 2000.0f)];
答案 1 :(得分:1)
怎么样:
NSDictionary *stringAttributes = [NSDictionary dictionaryWithObject:[UIFont fontWithName:@"Marker Felt"
size:20]
forKey: NSFontAttributeName];
CGSize maximumLabelSize = CGSizeMake(self.myTextView.frame.size.width, FLT_MAX);
CGSize textViewSize = [self.descriptionStringShort boundingRectWithSize:maximumLabelSize
options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesLineFragmentOrigin
attributes:stringAttributes context:nil].size;
CGRect frame = self.myTextView.frame;
frame.size.height = textViewSize.height;
self.myTextView.frame = frame;