无法根据标签的文本动态调整标签的高度

Posted

技术标签:

【中文标题】无法根据标签的文本动态调整标签的高度【英文标题】:Unable to adjust height of a Label dynamically according to its text 【发布时间】:2016-06-20 07:56:57 【问题描述】:

我在下面提到了我想根据文本调整标签高度的代码。在下图中,黑色背景是标签,这个标签被插入到 UIScrollView 中。标签与滚动视图的左上角对齐,但是当我运行我的应用程序时,以下是视图控制器的显示,即标签已远远低于滚动视图的左上角。请在这件事上帮助我

func getLabelsHeightAccordingToTheTextContent() -> CGFloat
        

        let label:UILabel = UILabel(frame: CGRectMake(0, 0, 250, CGFloat.max))
        label.numberOfLines = 0
        label.font = outletLabel.font
        label.text = outletLabel.text
        label.lineBreakMode = NSLineBreakMode.ByWordWrapping

        var fontName: String = outletLabel.font.fontName

        label.font = UIFont (name: fontName, size: outletLabel.font.pointSize)


        label.sizeToFit()
        return label.frame.height
    

当我得到标签的高度时,我设置了滚动视图的高度

let height = getLabelsHeightAccordingToTheTextContent()
        let width = outletScrollView.frame.width

以下是标签的属性.......................

【问题讨论】:

您是否使用滚动视图以便人们可以滚动浏览文本? 查看链接以执行此操作..***.com/questions/25180443/… 我希望这会对您有所帮助.. 换行模式应该是自动换行 是的,废弃标签和滚动视图并添加一个 UITextView 并将其属性设置为与标签相同。然后在情节提要中将 TextView 的编辑属性设置为 false,这样人们就无法输入它。也许现在在情节提要中添加 textView 但不要删除标签和滚动视图,只需在 viewDidLoad 中将其隐藏属性设置为 true。然后,如果你想回到你当前的方法,你可以。 没问题 :) 我会把它写下来作为任何发现相同问题的人的正确答案 【参考方案1】:

为文本添加滚动功能的最简单方法是使用 UITextView。设置或多或少与标签相同,但内置滚动。

需要注意的一点是,默认情况下允许用户编辑文本,因此无论是在情节提要中还是以编程方式,您都应该将 textView 的 editable 设置为 false。

【讨论】:

以上是关于无法根据标签的文本动态调整标签的高度的主要内容,如果未能解决你的问题,请参考以下文章

如何根据标签大小调整 CollectionView 高度

动态表视图高度

根据标签文本动态改变单元格高度

根据内容动态调整tableview单元格的高度 - iOS Swift

如何根据标签可用的高度调整 UILabel 字体大小

根据 UITableViewCell 标签高度和宽度调整背景图片大小