我正在制作一个需要在屏幕上创建UITextView的应用程序。 TextView的高度和宽度应随着用户类型的增加而继续增加,即TextView的高度和宽度应根据其内容而变化。
但是我已经能够通过myTextView.ContentSize.height控制TextView的高度。但是我找不到一种根据其内容控制TextView宽度的方法。
甚至myTextView.contentSize.width对我也不起作用。
我正在UITextView的textViewDidchange委托方法中进行所有框架计算。
有什么建议么??
最佳答案
在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);
认为这将为您工作。尝试一下。希望这可以帮助。