UITextView禁用包装

时间:2014-10-31 11:48:49

标签: ios objective-c xcode uitextview wrapping

我正在申请 iOS 7 iOS 8 ,我想在UITextView中禁用自动换行。我有一些ASCII表,我不希望它们坏掉。

我在 StoryBoard 中找不到该选项,我尝试以编程方式执行此操作。我试过了:

[textView setContentSize:[[textView attributedText] size]];

[textView.textContainer setSize:[[textView attributedText] size]];

似乎没有任何效果。

4 个答案:

答案 0 :(得分:2)

UITextView是为您要删除的这一功能而创建的。可能是UITextView不是基于您的用例的最佳选择。有许多方法可以在不使用UITextView的情况下实现此目的。以下是一些:

1)如果文本不可编辑,则可以使用UILabel。设置行数= 0以及换行和自动收缩的相应设置。

2)如果文本需要可编辑,则应在UIScrollView中使用UITextField。

3)制作一个自定义UIView,计算所需空间并自己绘制文本。 (这个选项是最强大的,但通常不是必需的,可以引入和解决一些问题。前面提到的控件将有这种类型的逻辑已经由Apple为您解决。)

希望这有帮助。

答案 1 :(得分:0)

我不确定您的界面究竟是什么样的,但这里有几个选项:

您可以尝试这个答案来检测自动换行并从那里开始。 Word wrap detecting in UITextView

它可能对你有用。或者尝试使用bezier路径绘制线条,如何获得。或者像这里{NSTextContainer Adding exclusion paths to multiple text views

答案 2 :(得分:0)

CGSize txtSize = [editor sizeThatFits:CGSizeMake(0, 0)];
editor.frame = CGRectMake(0, 0, txtSize.width, self.frame.size.height);
self.contentSize = CGSizeMake(txtSize.width, self.frame.size.height);

此处“ self”是一个UIScrollView,它将水平滚动UITextView。 “编辑器”是一个UITextView,它将垂直滚动。

答案 3 :(得分:0)

您还可以通过将 UITextView 放在 UIScrollView 中并进行设置来“禁用”textView.isScrollEnabled = false 中的自动换行

?"regular expression"