【问题标题】:Keep cursor position on bottom line in textView Swift将光标位置保持在 textView Swift 的底线
【发布时间】:2019-10-27 00:29:42
【问题描述】:

我需要创建一个 UI,当用户键入时,光标/键入区域会停留在页面中间,并且新键入的文本会在页面顶部“上下”推送。

我尝试将光标位置设置为覆盖 0.6 超级视图的文本视图的底部,但这不起作用(可能是因为它没有任何文本?)。 This 是一般光标放置的一个很好的答案,但我的用例没有得到满足。

我用来尝试将光标放在文本视图末尾的代码是:

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

这不起作用,因为它正在寻找填充的文本,但有时文本视图会是空的,我仍然需要在最后一行加载它。

我尝试创建的效果如下所示:

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

【问题讨论】:

    标签: swift textview uitextview


    【解决方案1】:

    对于将来遇到此问题的人。我从不同的角度解决了这个问题。我没有尝试将光标放在页面的中间位置,而是移除了高度限制,并使文本视图根据内容动态调整大小。

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

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

    完美(我还禁用了滚动功能)

    重要提示 - 如果某些事情看起来真的很困难,那么可能有不同的方法来解决问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-28
      • 2010-10-15
      • 1970-01-01
      • 2013-04-18
      • 2011-03-18
      • 2012-06-14
      相关资源
      最近更新 更多