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

标签 ios uikit uitextview

互联网上有很多问题提示 UITextView 如何过早地切断文本,但我找不到任何关于您实际上想要的相反情况在结束之前切断文本 - 但在一行中途。

似乎 UITextView 只会呈现 谨慎 行文本 - 即,如果它不够大,它不会呈现超出完全适合其内部的最后一行.我正在寻找一种方法,让它将部分文本行渲染到底部边界。

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

Illustration of partial lines of text

我的 UITextView 有一个固定的高度并且滚动被禁用。我分配的 attributedText 可以是粗体、斜体等等,而不是一个简单的字符串。

最佳答案

我认为您无法使用 UITextView 的属性来完成此任务。

不过,一种方法是:

  • 将 TextView 嵌入“容器”UIView
  • 根据需要限制容器 View 的高度
  • 将容器 View 的 Clips to Bounds 设置为 TRUE

这将允许 TextView 垂直增长以适合其文本,但容器 View 将剪切您不希望可见的部分。

容器 View 背景为黄色, TextView 背景为青色:

enter image description here

使用调试 View 层次结构 - 显示剪辑的内容:

enter image description here

这是 3D View :

enter image description here


编辑

这是另一种方法——可能会或可能不会满足您的要求...

  • UITextView - 设置位置和宽高限制
  • 不可编辑
  • 是可选择的
  • 启用滚动 - 这将显示部分行
  • 禁用显示滚动指示器

现在,将 UIPanGestureRecognizer 添加到该 TextView 。它不需要做任何事情......但它会(至少看起来)阻止 TextView 接收平移手势,从而阻止滚动。

但有一个值得注意的问题...如果您有足够多的文本,您会得到多行,当您开始选择时,您可以将选择 handle 向下拖动到下一行,然后文本向上滚动...可能会在代码中阻止这种情况,或者这可能是可取的,然后在用户复制所选文本后重置滚动。

关于ios - 在故意截断的 UITextView 上显示部分文本行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59750434/

相关文章:

iphone - 如何检测特定区域的触摸

ios - 同时支持 iOS5 和 iOS6

ios - AFIncrementalStore 和 AFNetworking 2.0

ios - 像 Instagram 一样在 ViewController 之间为 UITextView 设置动画

ios - 禁用呈现 View Controller 的交互式关闭

ios - 将 NSAttributed 文本附加到 UITextview

ios - iOS4 上的 NSFetchedResultsController 问题

ios - 如何将步进值传递给 ViewController?

iOS - UITextView 的设置文本抛出 EXC_BAD_ACCESS

objective-c - 如何调整 UITextView 的宽度以适应其内容而不换行?