【问题标题】:How to make a UITextView scroll horizontally as the user types?如何使 UITextView 在用户键入时水平滚动?
【发布时间】:2010-12-06 00:36:56
【问题描述】:

这看起来应该很简单,但我不知道该怎么做。

我在界面生成器中创建了一个 UITextView。它不会放在表格单元格或类似的东西中。

当用户一直键入到右边距时,我想做的是让 UITextView 向左滚动。

目前它只是进行自动换行,我知道自动换行在大多数情况下都是有意义的,但我需要它来滚动。我所追求的是它在垂直方向上表现出的相同行为。

我尝试在 viewDidLoad 和 viewDidAppear 中调整 UITextView 的内容大小,但没有任何区别。

我也玩过 IB 中的插入设置,但这不会影响可滚动大小,只会影响它的显示位置。

有人有什么想法吗?

【问题讨论】:

    标签: iphone cocoa-touch sdk uitextview


    【解决方案1】:

    如果您只需要一行滚动的文本,UITextField 可能会更好。 UITextViews 用于多行文本输入,这就是默认自动换行的原因。据我所知,您无法覆盖该行为。

    【讨论】:

    • 其实我需要多行。
    • 您可以尝试设置/覆盖contentSize 属性,但如果这不起作用,您可能不走运。
    【解决方案2】:

    好的,它看起来不像我想要的那样完成,但我想出了一个技巧来让我到达那里。

    假设我想要 600 的可滚动宽度和 250 的可见宽度。

    第一步是使 UITextView 与您想要滚动的区域一样宽。因此,您将在 contentSize 中放入什么,在本例中为 600。

    然后右插图设置为实际宽度与您想要的宽度之间的差异。在本例中为 350。

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

    现在这里是真正骇人听闻的地方,如果您敏感或胃部虚弱,请不要继续阅读。

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

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

    我并不自豪,但它确实有效。

    【讨论】:

      猜你喜欢
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多