我的應用程序顯示一個字符串數組,通過按鈕按鈕進行迭代。它適用於除iPhone 4S以外的所有設備。問題是一些字符串元素需要很長時間以適應UITextView,並且您必須滾動才能閱讀剩餘的字符串,這並不是我想要的。如何在iPhone 4S的UITextView中動態調整文本大小Swift
所以,我的問題是如何動態縮小屬性文本以適應受約束的UITextView,當它不適合所有的字符串元素?
讓我知道這是可能的, 謝謝你們。
我的應用程序顯示一個字符串數組,通過按鈕按鈕進行迭代。它適用於除iPhone 4S以外的所有設備。問題是一些字符串元素需要很長時間以適應UITextView,並且您必須滾動才能閱讀剩餘的字符串,這並不是我想要的。如何在iPhone 4S的UITextView中動態調整文本大小Swift
所以,我的問題是如何動態縮小屬性文本以適應受約束的UITextView,當它不適合所有的字符串元素?
讓我知道這是可能的, 謝謝你們。
爲什麼你使用UITextView
,當你可以使用UILabel
爲你的情況。 UITextView
沒有自動縮放屬性。與UILabel
你可以設置行數,它有Autoshrink
屬性,您可以設置Minimum font scale
或Minimum font size
,將相應地調整您的文字爲UILabel
大小。或者只允許使用UITextView
滾動。
在你的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;
}
很高興知道,謝謝 – Khoury
這些會爲我節省很多時間。謝謝! – MXV
這仍然錯過了這個問題的要點,有許多有效的理由在'UILabel'上使用'UITextView'。 –