无法控制UITextView的宽度

时间:2012-08-07 10:10:45

标签: iphone ios xcode4.2 uitextview

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

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

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

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

有什么建议吗?

1 个答案:

答案 0 :(得分: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);

认为这对你有用。试试吧。希望这会有所帮助。