互联网上有很多问题提示 UITextView
如何过早地切断文本,但我找不到任何关于您实际上想要的相反情况在结束之前切断文本 - 但在一行中途。
似乎 UITextView
只会呈现 谨慎 行文本 - 即,如果它不够大,它不会呈现超出完全适合其内部的最后一行.我正在寻找一种方法,让它将部分文本行渲染到底部边界。
即它目前在此处执行左侧的操作,而我正在寻找一种方法来执行右侧的操作:
我的 UITextView
有一个固定的高度并且滚动被禁用。我分配的 attributedText
可以是粗体、斜体等等,而不是一个简单的字符串。
最佳答案
我认为您无法使用 UITextView
的属性来完成此任务。
不过,一种方法是:
- 将 TextView 嵌入“容器”
UIView
- 根据需要限制容器 View 的高度
- 将容器 View 的
Clips to Bounds
设置为 TRUE
这将允许 TextView 垂直增长以适合其文本,但容器 View 将剪切您不希望可见的部分。
容器 View 背景为黄色, TextView 背景为青色:
使用调试 View 层次结构 - 显示剪辑的内容
:
这是 3D View :
编辑
这是另一种方法——可能会或可能不会满足您的要求...
UITextView
- 设置位置和宽高限制- 不可编辑
- 是可选择的
- 启用滚动 - 这将显示部分行
- 禁用显示滚动指示器
现在,将 UIPanGestureRecognizer
添加到该 TextView 。它不需要做任何事情......但它会(至少看起来)阻止 TextView 接收平移手势,从而阻止滚动。
但有一个值得注意的问题...如果您有足够多的文本,您会得到多行,当您开始选择时,您可以将选择 handle 向下拖动到下一行,然后文本将向上滚动...可能会在代码中阻止这种情况,或者这可能是可取的,然后在用户复制所选文本后重置滚动。
关于ios - 在故意截断的 UITextView 上显示部分文本行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59750434/