sizeWithFont:constrainedToSize 不适用于自定义字体

Posted

技术标签:

【中文标题】sizeWithFont:constrainedToSize 不适用于自定义字体【英文标题】:sizeWithFont:constrainedToSize doesn't work with custom font 【发布时间】:2014-02-15 19:34:06 【问题描述】:

我正在尝试将 UITextView 调整为其中文本的大小。 问题是我使用自定义字体,文本不适合 UITextView。

NSString *textToFit = @"pretty long text";
UIFont *customFont = [UIFont fontWithName:@"Museo-100" size:15];
CGSize sizeText = [textToFit sizeWithFont:customFont constrainedToSize:CGSizeMake(textFrame.size.width, 1000)];

其中 textFrame 是我要调整高度的 UITextView 的框架。

我正在尝试不同的字体以及相同字体的不同文件,但它仍然不会将其高度调整为文本填充的高度。

我一直在寻找,但没有找到解决方案。我已经尝试过使用 UILabel 和方法 textRectForBounds 的解决方法,但仍然没有成功,这行的东西。

UILabel *auxLabel = [[UILabel alloc]init];
auxLabel.numberOfLines = 0;
auxLabel.font = [UIFont fontWithName:@"Museo-100" size:15];
auxLabel.text = //THE TEXT I WANT TO FIT IN
CGRect textSize = CGRectMake(0.0, 0.0, textDescription.frame.size.width, FLT_MAX);
CGRect frame = [auxLabel textRectForBounds:textSize limitedToNumberOfLines:0];

【问题讨论】:

ios7 UITextView contentsize.height alternative 的可能重复项 【参考方案1】:

我觉得

UIView : sizeToFit

应该可以解决你的问题。

sizeToFit 调整并移动接收者视图,使其仅包含其 子视图。

讨论:当你想调整当前视图的大小以便它使用最合适的空间时调用这个方法。 具体的 UIKit 视图会根据自己的内部调整自己的大小 需要。在某些情况下,如果一个视图没有父视图,它可能会调整大小 本身到屏幕边界。因此,如果您希望给定视图的大小 本身到它的父视图,你应该先将它添加到父视图 调用这个方法。

https://developer.apple.com/library/ios/documentation/uikit/reference/uiview_class/uiview/uiview.html#//apple_ref/occ/instm/UIView/sizeToFit

【讨论】:

以上是关于sizeWithFont:constrainedToSize 不适用于自定义字体的主要内容,如果未能解决你的问题,请参考以下文章