我正在申请 iOS 7 和 iOS 8 ,我想在UITextView
中禁用自动换行。我有一些ASCII表,我不希望它们坏掉。
我在 StoryBoard 中找不到该选项,我尝试以编程方式执行此操作。我试过了:
[textView setContentSize:[[textView attributedText] size]];
和
[textView.textContainer setSize:[[textView attributedText] size]];
似乎没有任何效果。
答案 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"