2012-08-07 50 views
1

我正在制作一个应用程序,我需要在屏幕上创建一个UITextView。 TextView的高度和宽度应该随着用户类型的增加而增加,即TextView的高度和宽度应根据其内容而改变。无法控制UITextView的宽度

但是我已经能够通过myTextView.ContentSize.height控制TextView的高度。但是我找不到根据其内容来控制TextView宽度的方法。

即使myTextView.contentSize.width不适用于我。

我正在做我所有的帧计算textViewDidchange UITextView的委托方法。

有什么建议?

+0

是小于UITextView大小的内容大小吗? – holex 2012-08-07 10:16:33

回答

1

textViewDidChange

CGSize constraintSize; 
CGSize labelSize; 

constraintSize = CGSizeMake(myTextView.frame.size.width, 480); 

NSString *text = myTextView.text; 
text    = [text stringByTrimmingCharactersInSet: [NSCharacterSet newlineCharacterSet]]; 
text    = [text stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; 

if([text stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding]) 
{ 
    text   = [text stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; 
} 

// Note that in the below line you must use the font as exact as you use for textview 

labelSize   = [text sizeWithFont:[UIFont systemFontOfSize: 16] constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap]; 

labelSize你可以找到文本视图的预期大小。 您可以设置myTextView框架为

myTextView.frame = CGRectMake(myTextView.frame.origin.x,myTextView.frame.origin.y,labelSize.width,labelSize.height); 

认为这会为你工作。尝试一下。希望这可以帮助。

+0

我试过这个,但是我的textview只是按高度增长。它的宽度没有增长。 – 2012-08-08 14:47:52