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

时间:2014-02-15 19:34:06

标签: objective-c uitextview uifont

我正在尝试将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];

1 个答案:

答案 0 :(得分:0)

我认为

UIView : sizeToFit

应该解决你的问题。

  

sizeToFit调整大小并移动接收器视图,使其只包围它   子视图。

     

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

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