2012-09-12 126 views
1

TextView.contentSize.width无法设置UITextView的.frame.size.width。根据内容大小属性设置UIText视图的宽度

[TextView setFrame:CGRectMake(TextView.frame.origin.x, TextView.frame.origin.y, TextView.contentSize.width, TextView.contentSize.height)]; 

的UITextView中的帧高度设定在contentSize.height财产工程,使视图的帧比例,以适当的大小为内容的当前垂直尺寸。出于某种原因,视图框架的宽度不会以相同的方式响应。无论文本输入的数量如何,它都保持相同的大小。

当我动态记录UITextView的内容大小时,正如我在视图中输入文本一样,height属性更改(在每个换行符处),而宽度不变。让我想知道宽度属性在做什么,它是干什么用的。

回答

1

尝试这种方式..

UIFont *font = [UIFont fontWithName:@"Enriqueta" size:15]; 
NSString *text = @"Your text"; 
CGSize frameSize = [text sizeWithFont:font]; 
CGRect originalFrame = textViewA1.frame; 
textViewA1.frame = CGRectMake(CGRectGetMinX(originalFrame), CGRectGetMinY(originalFrame), frameSize.width, frameSize.height); 
+0

感谢。像上面一样工作,直到我进行换行,其中我的UIText视图的范围继续扩大。例如,如果有两行,每行有5个字符,则UITextview宽度将是具有5个字符的单行宽度的两倍。我正在研究一种计算最长线的方法,并将其用作宽度的度量。 – Mrwolfy

1

由于根据的UITextView的宽度应该是这样的:

UIFont *myFont = [UIFont boldSystemFontOfSize:15.0]; //your font specification here 
NSString *strText = yourTextView.text; 
CGSize strsize = [strText sizeWithFont:myFont 
          forWidth:yourTextView.frame.size.width 
        lineBreakMode:UILineBreakModeWordWrap]; //get string size 
yourTextView.frame = CGRectMake(yourTextView.frame.origin.x,yourTextView.frame.origin.y,strsize.width,strsize.height+10); //change accordingly 
+0

我的代码有什么问题? –

+0

谢谢。工作,直到我做一个换行符,其中我的UIText视图继续扩大。例如,如果有两行,每行有5个字符,则UITextview宽度将是具有5个字符的单行宽度的两倍。我正在研究一种计算最长线的方法,并将其用作宽度的度量。 – Mrwolfy

相关问题