在 TitleLabel 和 DetailLabel 上环绕文本 - 材质卡

Posted

技术标签:

【中文标题】在 TitleLabel 和 DetailLabel 上环绕文本 - 材质卡【英文标题】:Wrapping text on TitleLabel and DetailLabel - Material Card 【发布时间】:2019-10-08 16:35:44 【问题描述】:

我正在使用 CosmicMind - 材质框架来创建卡片。 titleLabel 和 DetailLabel 不会换行。

我的问题是:我需要做什么来完成这样的任务,它应该由框架自动调整吗?

这是我目前所拥有的:

    let card = Card()
    var heartIcon = IconButton()
    heartIcon = IconButton(image: Icon.favoriteBorder, tintColor: Color.red.base)

    //Title Bar
    let toolbar = Toolbar(rightViews: [heartIcon])
    toolbar.title = cardData.cardTitleText
    toolbar.titleLabel.textAlignment = .left
    toolbar.titleLabel.numberOfLines = 0

    toolbar.detail = "Company: " + cardData.cardTitleSubtitle
    toolbar.detailLabel.font = RobotoFont.regular(with: 14)
    toolbar.detailLabel.textColor = Color.grey.base
    toolbar.detailLabel.textAlignment = .left
    toolbar.detailLabel.numberOfLines = 0

这是我的输出:

更新: 我设法通过增加工具栏框架的大小来实现我想要的。

toolbar.frame = CGRect(x:0,y:0,width: view.frame.width,height: 100)

我的目标是至少显示 2 行文本。

谢谢!

【问题讨论】:

【参考方案1】:

我没有使用 CosmicMind 框架的经验,但通常,the label.numberOfLines 属性定义了标签文本可以拥有的最大行数。您可以将其设置为 2 而不是 0,它应该会换行。

【讨论】:

很抱歉听到这个消息。也许你的 lineBreakMode 是错误的。尝试设置label.lineBreakMode = NSLineBreakMode.byWordWrapping 我设法通过增加工具栏本身的大小来获得我想要的布局。

以上是关于在 TitleLabel 和 DetailLabel 上环绕文本 - 材质卡的主要内容,如果未能解决你的问题,请参考以下文章

为 UIButton 设置 titleLabel

如何在 segue 中初始化 UIButton 的 titleLabel 字体?

根据 titleLabel 的长度调整 UIButton 的大小

更新 titleLabel UIButton

UIButton set titleLabel setValue(newLabel, forKeyPath: "titleLabel")

UIButton.titleLabel.frame.size 始终为零值