2009-10-12 159 views
0

这看起来应该很简单,但我不知道如何去做。如何使用户键入UITextView水平滚动?

我在界面生成器中创建了一个UITextView。它不会坐在桌上的单元格或任何像这样的幻想中。

我想要做的是当用户输入他们的方式一直到右边距UITextView滚动自己到左边。

目前它只是做一个单词包装,我理解在大多数情况下单词包装是有意义的,但我需要它来滚动。我所追求的是垂直展示的行为。

我试过在viewDidLoad中调整UITextView的内容大小,并且在viewDidAppear中也没有什么区别。

我也玩过IB中的插入设置,但不会影响可滚动大小,只是显示在哪里。

有没有人有任何想法?

回答

1

好的,它看起来并不像我想要的那样完成,但是我已经想出了一个办法让我在那里。

比方说,我想600滚动宽度和250

可见宽度的第一步是使一个UITextView的宽你想要滚动的区域。那么你会在contentSize中输入什么,在这种情况下是600.

然后右插入设置为实际宽度和所需宽度之间的差值。在这种情况下,350.

这种方式光标被限制到您需要的宽度,但在所需宽度的右​​侧有可见的文本,毕竟UITextView IS是600像素宽。

现在,这里是真正的hackish位进来,如果你敏感或胃虚弱,不要阅读。

在UITextView应该结束的位置获取用户界面的图像。将它作为UIImage视图插入到NIB中,并将它放回原处,确保它位于UITextView的顶部。

当显示视图时,剪切位于UITextView的顶部并隐藏文本溢出。

我并不自豪,但它的工作原理。

2

如果您只需要一行滚动的文本,您可能会更好地使用UITextFieldUITextView s用于多行文本输入,这就是为什么自动换行是默认设置。据我所知,你不能覆盖该行为。

+0

其实我需要多行。 – oldbeamer 2009-10-12 21:23:22

+0

你可以尝试设置/覆盖'contentSize'属性,但是如果这样做不起作用,那么你很可能倒霉。 – Alex 2009-10-12 21:26:56