无法控制 UITextView 的宽度
Posted
技术标签:
【中文标题】无法控制 UITextView 的宽度【英文标题】:Unable to control the width of UITextView 【发布时间】:2012-08-07 10:10:45 【问题描述】:我正在制作一个需要在屏幕上创建 UITextView 的应用程序。 TextView 的高度和宽度应该随着用户类型而不断增加,即 TextView 的高度和宽度应该根据其内容而改变。
但是我已经能够通过 myTextView.ContentSize.height 控制 TextView 的高度。但是我找不到根据其内容控制 TextView 宽度的方法。
即使 myTextView.contentSize.width 对我也不起作用。
我在 UITextView 的 textViewDidchange 委托方法中进行所有帧计算。
有什么建议吗??
【问题讨论】:
内容大小是否小于UITextView
的大小?
【参考方案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);
认为这对你有用。尝试一下。希望这会有所帮助。
【讨论】:
我试过了,但我的 textview 只增加了高度。它的宽度没有增加。以上是关于无法控制 UITextView 的宽度的主要内容,如果未能解决你的问题,请参考以下文章
从 UIText 字段的用户输入更改 UIView 框架的高度和宽度