我需要创建一个UI,在该UI中,随着用户键入的内容,光标/键入区域位于页面的中间,而新键入的文本被“向上和向下”推到页面顶部。
我试图将光标位置设置到覆盖了Superview的0.6的文本视图的底部,但这不起作用(大概是因为它没有任何文本吗?)。 This是一般光标放置的好答案,但我的用例不适合。
我用来将光标置于文本视图末尾的代码是:
func setCursorPosition() {
let newPosition = textViewOutlet.endOfDocument
textViewOutlet.selectedTextRange = textViewOutlet.textRange(from: newPosition, to: newPosition)
}
这不起作用,因为它正在寻找填充文本,但是有时文本视图将为空,我仍然需要将其加载到底行。
我要创建的效果看起来像这样:
我认为这是一个复杂的问题-有什么想法吗?
答案 0 :(得分:0)
针对将来遇到此问题的人。我从另一个角度解决了这个问题。我没有尝试将光标放在页面的下半部分,而是删除了高度限制,并根据内容对文本视图进行了动态调整。
然后我调整了约束(在此answer的帮助下)以将空间固定到底部安全区域,但未指定高度。
这样,文本视图会动态调整大小,但方向会向上。当达到渐变时,我放在框架上的渐变开始消失。
完美(我也禁用了滚动功能以使其正常工作)
最重要的提示-如果确实很难解决问题,则可以采用其他方法解决问题!