2016-02-22 54 views
2

我的應用程序顯示一個字符串數組,通過按鈕按鈕進行迭代。它適用於除iPhone 4S以外的所有設備。問題是一些字符串元素需要很長時間以適應UITextView,並且您必須滾動才能閱讀剩餘的字符串,這並不是我想要的。如何在iPhone 4S的UITextView中動態調整文本大小Swift

所以,我的問題是如何動態縮小屬性文本以適應受約束的UITextView,當它不適合所有的字符串元素?

讓我知道這是可能的, 謝謝你們。

回答

3

爲什麼你使用UITextView,當你可以使用UILabel爲你的情況。 UITextView沒有自動縮放屬性。與UILabel你可以設置行數,它有Autoshrink屬性,您可以設置Minimum font scaleMinimum font size,將相應地調整您的文字爲UILabel大小。或者只允許使用UITextView滾動。

+0

很高興知道,謝謝 – Khoury

+0

這些會爲我節省很多時間。謝謝! – MXV

+1

這仍然錯過了這個問題的要點,有許多有效的理由在'UILabel'上使用'UITextView'。 –

0

在你的textview類別類中使用這個來適應字體大小取決於寬度。

-(BOOL)sizeFontToFit:(NSString*)aString minSize:(float)aMinFontSize maxSize:(float)aMaxFontSize 
{ 
float fudgeFactor = 16.0; 
float fontSize = aMaxFontSize; 

self.font = [self.font fontWithSize:fontSize]; 

CGSize tallerSize = CGSizeMake(self.frame.size.width-fudgeFactor,kMaxFieldHeight); 
CGSize stringSize = [aString sizeWithFont:self.font constrainedToSize:tallerSize lineBreakMode:UILineBreakModeWordWrap]; 

while (stringSize.height >= self.frame.size.height) 
     { 
     if (fontSize <= aMinFontSize) // it just won't fit 
      return NO; 

     fontSize -= 1.0; 
     self.font = [self.font fontWithSize:fontSize]; 
     tallerSize = CGSizeMake(self.frame.size.width-fudgeFactor,kMaxFieldHeight); 
     stringSize = [aString sizeWithFont:self.font constrainedToSize:tallerSize lineBreakMode:UILineBreakModeWordWrap]; 
     } 

return YES; 
} 
相關問題