代码之家  ›  专栏  ›  技术社区  ›  Jack Guo

UILabel属性化文本在开始新行之前不会填充整行

  •  2
  • Jack Guo  · 技术社区  · 6 年前

    正如您从图像中看到的 UILabel 设置为黄色。属性化文本在换行到下一行之前不会使用所有空格(“at”应位于第一行)。有什么办法解决吗?

    enter image description here

    标签构造如下。它在一个 UICollectionView 标题,并通过自动布局定位

    let astring = NSMutableAttributedString(string: "You asked friends, and people at ")
    astring.append(NSAttributedString(string:"Pittsburgh", 
        attributes: [.font: UIFont.boldSystemFont(ofSize: 15)]))
    
    let label = UILabel()
    label.attributedText = astring
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   DonMag    6 年前

    是的,奇怪的虫子。。。

    一个解决方案,尽管我没有对它进行任何测试,只是为了看看它在您的情况下是否有效。

    在末尾附加一个“无宽度空格”字符:

        let astring = NSMutableAttributedString(string: "You asked friends, and people at ")
        astring.append(NSAttributedString(string:"Pittsburgh",
                                          attributes: [.font: UIFont.boldSystemFont(ofSize: 15)]))
        astring.append(NSAttributedString(string:"\u{200b}",
                                          attributes: [.font: UIFont.systemFont(ofSize: 15)]))
    

    结果:

    enter image description here

        2
  •  0
  •   Humza Shahid    6 年前

    在结尾的属性字符串中附加“\u{200b}”。希望它能正常工作,