将光标保持在textView Swift的底行上

时间:2019-06-12 13:11:35

标签: swift textview uitextview

我需要创建一个UI,在该UI中,随着用户键入的内容,光标/键入区域位于页面的中间,而新键入的文本被“向上和向下”推到页面顶部。

我试图将光标位置设置到覆盖了Superview的0.6的文本视图的底部,但这不起作用(大概是因为它没有任何文本吗?)。 This是一般光标放置的好答案,但我的用例不适合。

我用来将光标置于文本视图末尾的代码是:

func setCursorPosition() {
        let newPosition = textViewOutlet.endOfDocument
        textViewOutlet.selectedTextRange = textViewOutlet.textRange(from: newPosition, to: newPosition)
    }

这不起作用,因为它正在寻找填充文本,但是有时文本视图将为空,我仍然需要将其加载到底行。

我要创建的效果看起来像这样:

enter image description here

我认为这是一个复杂的问题-有什么想法吗?

1 个答案:

答案 0 :(得分:0)

针对将来遇到此问题的人。我从另一个角度解决了这个问题。我没有尝试将光标放在页面的下半部分,而是删除了高度限制,并根据内容对文本视图进行了动态调整。

然后我调整了约束(在此answer的帮助下)以将空间固定到底部安全区域,但未指定高度。

这样,文本视图会动态调整大小,但方向会向上。当达到渐变时,我放在框架上的渐变开始消失。

完美(我也禁用了滚动功能以使其正常工作)

最重要的提示-如果确实很难解决问题,则可以采用其他方法解决问题!