如何在iPhone 4S Swift上的UITextView中动态调整文本大小

时间:2016-02-22 09:39:08

标签: ios swift uitextview

我的应用程序显示了一个字符串数组,按下按钮可以迭代。它适用于除iPhone 4S以外的所有设备。问题是一些字符串元素很长,以适应UITextView,你必须滚动阅读其余的,我不想要。

所以,我的问题是当它不适合所有的字符串元素时,如何动态缩小属性文本以适应受约束的UITextView?

如果可能,请告诉我, 谢谢你们。

2 个答案:

答案 0 :(得分:3)

为什么在使用$system == 'Malaria'时可以使用UITextViewUILabel没有自动缩放属性。使用UITextView,您可以设置行数,并且它具有UILabel属性,您可以在其中设置AutoshrinkMinimum font scale,以便根据Minimum font size大小调整文字。或者只允许使用UILabel进行滚动。

答案 1 :(得分: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; 
}