UIStackView 中的多行 UILabel 问题

Posted

技术标签:

【中文标题】UIStackView 中的多行 UILabel 问题【英文标题】:Issues with multiline UILabel in UIStackView 【发布时间】:2021-08-16 22:01:55 【问题描述】:

我有以下代码在使用单行标签时可以正常工作,但现在由于标签设置为多行而中断。以下是相关代码:

  private let label: UILabel = 
        let label = CKLabel.multilineLabel()
        return label
    ()

    private lazy var iconView: UIImageView = 
        let imageView = TintedImageView(tintColor: style.textColor)
        imageView.contentMode = .scaleAspectFit
        return imageView
    ()

    private let contentStackView = UIStackView(alignment: .center, spacing: Constants.imageTitleSpacing)

private func setupViews() 
        layer.addCornerRadius(KPL.BorderRadius.default)

        contentStackView.setArrangedSubviews([iconView, label])
        addSubview(contentStackView)
        contentStackView.edgesToSuperview(insets: Constants.contentInsets)
        iconView.height(Constants.iconHeight)
        iconView.widthToHeight()
    

这是多行更改前后视图的外观。请注意,如果图标设置为隐藏,则一切正常。

【问题讨论】:

【参考方案1】:

在 UIView 中嵌入标签解决了这个问题。

【讨论】:

以上是关于UIStackView 中的多行 UILabel 问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS:多行 UILabel 与水平 UIStackView 中的另一个 UILabel 大小错误

UIStackView 和截断的多行 UILabel

在 UIStackView 中垂直居中三个 UILabel

UIStackView 中的 UILabel

UIStackView 中的 UILabel 中的 CAGradientLayer

将 UIStackView 中的 UILabel 背景更改为渐变色