在故意截断的UITextView上显示部分文本行

问题描述 投票:0回答:1

[Internet上有很多问题抱怨UITextView如何过早截断文本,但我找不到相反的情况,实际上,您实际上want会在结尾之前截断文本-但是通过一条线的一部分。

似乎UITextView只会渲染文本的[[discreet行-即,如果它不够大,则不会超出完全适合文本的最后一行进行渲染。我正在寻找一种方法来使它呈现直到底部边界为止的部分文本。

即它目前正在执行左侧的操作,而我正在寻找一种执行右侧的操作的方法:

Illustration of partial lines of text

我的UITextView高度固定,无法滚动。我分配的attributedText可以有粗体,斜体等,而不是简单的字符串。

ios uikit uitextview
1个回答
1
投票
我认为您无法使用UITextView的属性来完成此操作。

不过是一种方法:

    将文本视图嵌入“容器” UIView
  • 根据需要限制容器视图的高度
  • 将容器视图的Clips to Bounds设置为TRUE
  • 这将使文本视图垂直增长以适合其文本,但是容器视图将裁剪您不希望看到的部分。

    容器视图背景为黄色,文本视图背景为青色:

    enter image description here

    使用调试视图层次结构-Show Clipped Content

    enter image description here

    这是3D视图:

    enter image description here


    编辑

    这里是另一种方法-可能会满足您的要求,也可能无法满足要求...

      UITextView-设置位置,宽度和高度限制
  • 不可编辑
  • 可以选择
  • 启用滚动-这将显示部分行
  • 禁用显示滚动指示器
  • 现在,将UIPanGestureRecognizer添加到该文本视图。它不需要执行任何操作...但是(至少看起来如此)它将阻止文本视图接收平移手势,从而防止滚动。

    但是,一个明显的问题...如果您有足够多的文本获得多行,则在开始选择时,可以将选择手柄向下拖动到下一行,然后文本

    将向上滚动。 。可能会防止代码中出现这种情况,或者可能希望这样做,然后在用户复制所选文本后重置滚动。

  • © www.soinside.com 2019 - 2024. All rights reserved.