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

问题描述 投票:0回答:1

我正在尝试将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];
objective-c uitextview uifont
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.