我正在创建一个应用程序,我需要在屏幕上创建一个UITextView。 TextView的高度和宽度应该随着用户类型的增加而增加,即TextView的高度和宽度应根据其内容而改变。
但是我已经能够通过 myTextView.ContentSize.height 来控制TextView的高度。但我找不到根据其内容控制TextView宽度的方法。
即使 myTextView.contentSize.width 也不适用于我。
我正在UITextView的 textViewDidchange 委托方法中进行所有帧计算。
有什么建议吗?
答案 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);
认为这对你有用。试试吧。希望这会有所帮助。