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

Ios 如何在iPhone 4S Swift上动态调整UITextView中的文本大小,ios,swift,uitextview,Ios,Swift,Uitextview,我的应用程序显示了一个字符串数组,可以通过按按钮进行迭代。它在除iPhone4S之外的所有设备上都能完美工作。问题是一些字符串元素太长,无法放入UITextView中,您必须滚动才能读取其其余部分,这是我不希望看到的 所以,我的问题是,当属性文本不适合所有字符串元素时,如何动态收缩属性文本以适应受约束的UITextView 如果可能的话,请告诉我, 谢谢大家。既然可以根据自己的情况使用UILabel,为什么还要使用UITextViewUITextView没有自动缩放属性。使用UILabel可以设

我的应用程序显示了一个字符串数组,可以通过按按钮进行迭代。它在除iPhone4S之外的所有设备上都能完美工作。问题是一些字符串元素太长,无法放入UITextView中,您必须滚动才能读取其其余部分,这是我不希望看到的

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

如果可能的话,请告诉我,
谢谢大家。

既然可以根据自己的情况使用
UILabel
,为什么还要使用
UITextView
<代码>UITextView没有自动缩放属性。使用
UILabel
可以设置行数,并且它具有
Autoshrink
属性,您可以在其中设置
最小字体比例
最小字体大小
,从而根据
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; 
}
-(BOOL)sizeFontToFit:(NSString*)aString minSize:(float)aMinFontSize maxSize:(float)aMaxFontSize
{   
浮动系数=16.0;
float fontSize=aMaxFontSize;
self.font=[self.font fontWithSize:fontSize];
CGSize-tallerise=CGSizeMake(self.frame.size.width-fudgeFactor,kMaxFieldHeight);
CGSize stringSize=[aString Size WithFont:self.font constrainedToSize:tallerSize lineBreakMode:UILineBreakModeWordWrap];
while(stringSize.height>=self.frame.size.height)
{

如果(fontSize)这些可以节省我这么多时间。谢谢!这仍然没有抓住问题的关键,有很多正当的理由可以使用
uiextview
而不是
UILabel