【问题标题】:Unable to control the width of UITextView无法控制 UITextView 的宽度
【发布时间】:2012-08-07 10:10:45
【问题描述】:

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

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

即使 myTextView.contentSize.width 对我也不起作用。

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

有什么建议吗??

【问题讨论】:

  • 内容大小是否小于UITextView的大小?

标签: iphone ios xcode4.2 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 只增加了高度。它的宽度没有增加。
猜你喜欢
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多