2014-02-15 138 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

相關問題