如何创建一个自动包装文本行的UITextView?

时间:2011-07-22 01:51:31

标签: iphone uitextview textwrapping

我正在创建一个以编程方式创建UITextView的应用程序。问题是,当用户键入文本或应用程序设置文本时,单词分布在一行并离开屏幕,而不是换行到下一行。当我使用界面构建器创建UITextView时,文本会自动换行,但不会以编程方式创建。

代码:

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(100, 12, 210, 60)];
[[self view] addSubview:textView];
[textView becomeFirstResponder];

3 个答案:

答案 0 :(得分:4)

从iOS 7开始提供:

textView.textContainer.lineBreakMode = NSLineBreakByWordWrapping;

答案 1 :(得分:3)

UITextViewUITextField是不同的类。 UITextField是单行,UITextView是多行。以编程方式创建UITextView而不是UITextField,您已经解决了我期望的问题。

答案 2 :(得分:0)

UITextView的整个要点是允许多行文字。来自文档:

  

UITextView类实现了可滚动的行为,   多行文本区域。该类支持使用a显示文本   自定义字体,颜色和对齐方式,还支持文本编辑。您   通常使用文本视图来显示多行文本,例如   显示大文本文档的正文时。

由于UITextView继承自UIScrollView,您可以通过禁用水平滚动来强制它进行合作。为此,您需要设置contentSize,例如

CGSize scrollableSize = CGSizeMake(210, 480);
[textView setContentSize:scrollableSize];

这会将宽度固定为210,并允许高度滚动到480。由于您要将textView设置为(210,60),因此应该允许垂直滚动而不是水平滚动。