2014-02-15 93 views
0

我正在尝试调整UITextView的大小以使其内部的文字变大。 问题是,我使用自定义字体,它的文本不适合在UITextView内。sizeWithFont:constrainedToSize不适用于自定义字体

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]; 
+0

可能重复的[iOS7的UITextView contentsize.height替代(http://stackoverflow.com/questions/19028743/ios7-uitextview-contentsize-height-alternative) – vokilam

回答

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

相关问题