如何设置UITextView的高度以完全匹配其截断的内容?

本·帕卡德

UITextView的身高想限制在某个合理的值,如有必要,文字会被截断。如何确保文本视图的高度与截断的内容的高度匹配例如,如果将高度设置为固定值,则文本视图底部将有一些可变的空间,这将影响其下方项目的布局。

是否可以通过某种方式设置所需的高度,测量截断的文本,然后使用该尺寸更精确地调整高度?甚至还有一种方法可以测量显示的文本在其中的高度UITextView

编辑

我需要澄清一下:

  1. 我不需要截断文字的帮助。从屏幕截图中可以看到,文本已被截断。
  2. 我无法测量文本,因为我需要测量truncated文本,而我无权访问。
  3. 文本视图底部的空白与无关textcontainerInset

这是当前构建屏幕截图的方式:

  1. 文本设置为一些长字符串。
  2. 可以说,文本视图被人为地限制到某个高度300这将产生截断。
  3. 由于300不是行高的精确倍数,因此最后一条截断的行下方还有一些额外的空间。

我想做的是:

将文本视图的大小调整为之后300,测量截断后的文本的精确高度,以便我可以再次调整文本视图的大小以使其适合而无需额外的间距(例如,将其设置285为所测量的大小)。

或者,采用其他一些方法可以达到相同的最终结果。

菲利普

由于您的限制,我希望它会被截断。因此,您需要计算代码中的文本大小并更新约束值:

let boundingRect = (textView.text as NSString).boundingRect(
    with: maxSize,
    options: .usesLineFragmentOrigin,
    attributes: [ .font: textView.font ],
    context: nil
)
heightConstraint.constant = boundingRect.height.rounded(.up)

此操作的结果是浮动的,与像素无关。当通过约束条件计算视图大小时,会将其舍入为像素(0.5或0.333 ...),这就是为什么我们需要自行舍入以排除不可预测的情况。要获得像素完美的高度,您可以根据屏幕比例对其进行舍入:

textViewHeightConstraint.constant = (boundingRect.height * UIScreen.main.nativeScale).rounded(.up) / UIScreen.main.nativeScale

另外,正如下面@nghiahoang所述,请不要忘记将插图归零

textView.textContainerInset = .zero

请查看示例项目:https : //github.com/PhilipDukhov/TruncatedTestViewTest

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何设置div高度匹配其容器

来自分类Dev

如何设置边栏高度以匹配主要内容的高度?

来自分类Dev

是否可以使UILabel,UITextView或类似的东西始终调整其高度以适合其在Interface Builder中的内容而不会被截断?

来自分类Dev

如何使UITextView在节标题中调整其高度为其内容

来自分类Dev

如何防止UITextView双击重置其高度?

来自分类Dev

如何防止UITextView双击重置其高度?

来自分类Dev

如何调整 UITextView 的大小,当达到特定值时,它会根据内容和固定宽度自动调整其宽度和高度?

来自分类Dev

如何设置div的高度以匹配剩余高度

来自分类Dev

如何设置div的高度以匹配剩余高度

来自分类Dev

在UItextview上设置动态高度以以编程方式适合内容

来自分类Dev

设置内容高度后无法更新UITextView大小

来自分类Dev

如何使用换行符(\ n)获得UITextView的内容高度?

来自分类Dev

如何将UITableViewCell的高度调整为内部UITextView的内容?

来自分类Dev

如何在QML中将文本组件文本内容内的文本设置为不超过其宽度和高度

来自分类Dev

如何为动态增长的 UITextView 设置最小高度?

来自分类Dev

如何重置UITextView的高度

来自分类Dev

为什么设置输入宽度与内容不完全匹配?

来自分类Dev

在Google文档中,如何设置所有表格的所有行的高度以匹配单元格内容的大小?

来自分类Dev

如何将视图高度设置为等于其宽度

来自分类Dev

如何为UIView容器设置动画以降低其高度?

来自分类Dev

如何设置元素相对于其祖父元素的高度?

来自分类Dev

如何在iOS中为UITextView设置内容插图

来自分类Dev

如何让动态 ReactJS 组件高度匹配,内容对齐?

来自分类Dev

如何使flexbox子代的高度适合内容而不是其容器的100%高度

来自分类Dev

无论内容如何,如何设置引导卡的最大高度相等?

来自分类Dev

根据其内容动态调整UITextView的高度?

来自分类Dev

iOS 9 Swift,UITextView基于内容的高度

来自分类Dev

如何获取与列表内容完全匹配的数据库条目

来自分类Dev

如何在我的情况下设置iframe内容高度?

Related 相关文章

  1. 1

    如何设置div高度匹配其容器

  2. 2

    如何设置边栏高度以匹配主要内容的高度?

  3. 3

    是否可以使UILabel,UITextView或类似的东西始终调整其高度以适合其在Interface Builder中的内容而不会被截断?

  4. 4

    如何使UITextView在节标题中调整其高度为其内容

  5. 5

    如何防止UITextView双击重置其高度?

  6. 6

    如何防止UITextView双击重置其高度?

  7. 7

    如何调整 UITextView 的大小,当达到特定值时,它会根据内容和固定宽度自动调整其宽度和高度?

  8. 8

    如何设置div的高度以匹配剩余高度

  9. 9

    如何设置div的高度以匹配剩余高度

  10. 10

    在UItextview上设置动态高度以以编程方式适合内容

  11. 11

    设置内容高度后无法更新UITextView大小

  12. 12

    如何使用换行符(\ n)获得UITextView的内容高度?

  13. 13

    如何将UITableViewCell的高度调整为内部UITextView的内容?

  14. 14

    如何在QML中将文本组件文本内容内的文本设置为不超过其宽度和高度

  15. 15

    如何为动态增长的 UITextView 设置最小高度?

  16. 16

    如何重置UITextView的高度

  17. 17

    为什么设置输入宽度与内容不完全匹配?

  18. 18

    在Google文档中,如何设置所有表格的所有行的高度以匹配单元格内容的大小?

  19. 19

    如何将视图高度设置为等于其宽度

  20. 20

    如何为UIView容器设置动画以降低其高度?

  21. 21

    如何设置元素相对于其祖父元素的高度?

  22. 22

    如何在iOS中为UITextView设置内容插图

  23. 23

    如何让动态 ReactJS 组件高度匹配,内容对齐?

  24. 24

    如何使flexbox子代的高度适合内容而不是其容器的100%高度

  25. 25

    无论内容如何,如何设置引导卡的最大高度相等?

  26. 26

    根据其内容动态调整UITextView的高度?

  27. 27

    iOS 9 Swift,UITextView基于内容的高度

  28. 28

    如何获取与列表内容完全匹配的数据库条目

  29. 29

    如何在我的情况下设置iframe内容高度?

热门标签

归档