UIScrollView中的UITextView不显示长文本

时间:2018-04-28 19:42:15

标签: ios swift

我在UIScrollView中有一个UITextView。如果我尝试显示具有特定字体大小的长文本,则文本不会显示。使用较短的文本或减小字体大小,文本会再次显示。我究竟做错了什么?

此处自动布局的屏幕截图(所选项目为textview): enter image description here

2 个答案:

答案 0 :(得分:0)

UITextView继承自UIScrollView

> (eq? (first '('leet 'a 'f)) (first '('leet 'coder 'a 'f 'f)))
#f

因此将ScrollView放在scrollView中是一种不好的做法。 您在UITextView中看不到长文本的原因是UITextView变得可滚动。 您也没有指定您的scrollView内容宽度,因此计算的with是长文本的一行。但是您可以滚动它,因为您将滚动scrollView。更好的方法是在scrollview中设置标签并设置标签numberOfLines = 0.将标签底部填充到scrollView的底部,并在标签顶部的某些项目顶部,您将获得一个可滚动的文本。

我只是明白你不需要使用scrollView来放置你的长篇文章。

您只需使用UITextView即可。

  1. 删除你的scrollView。
  2. 添加UITextView。
  3. 按照描述设置约束并使用屏幕截图对其进行数学运算
    • ReadingTimeLabel的最佳空间
    • 将底部对齐到Superview /底部布局指南
    • 领导Superview的空间
    • Superview的尾随空间
  4. UITextViewConstraints

    你会得到截图上的结果

    Scroller top:

    enter image description here

    滚动到底:

    enter image description here

    注意:您可以在属性检查器中禁用UITextView编辑。

    但如果您出于某种原因需要滚动视图: 如上所述设置约束,也如屏幕截图所示匹配它们。

    1. 添加scrollView约束(Superview是放置scrollView的视图): - 到ReadingTimeLabel的顶部空间 - 将底部对齐到Superview / Bottom布局指南 - 与Superview对齐 - 将结尾跟踪到Superview

    2. 请在scrollView中使用UIView。用它作为容器。

    3. 为容器添加约束。 (Superview是scrollView) - 与Superview对齐 - 对齐Superview -Top Space to SuperView -Bottom Space to SuperView -Equal宽度到SuperView

    4. 在容器内添加UILabel。 (Superview是容器)。

    5. 为UILabel添加约束。 - 与Superview对齐 - 对齐Superview -Top Space to SuperView -Bottom Space to SuperView

    6. 对于属性检查器中的标签集Lines = 0或使用代码

    7.   

      label.numberOfLines = 0

      scrollView constraints

      container constraints

      label constraints

      你会得到截图上的结果

      滚动顶部

      result 1

      滚动条底部

      result 2

答案 1 :(得分:0)

尝试以下代码:

textView.sizeToFit()