UILabel 动态字体大小不断中断

UILabel Dynamic Font size keep breaking

我的 CollectionViewCell 只有 UILabel(与单元格的边界相同)。 我正在获取 fontNames 数组作为 CollectionView 数据源:

 func printFonts() {
        let fontFamilyNames = UIFont.familyNames()
        for familyName in fontFamilyNames {
            let names = UIFont.fontNamesForFamilyName(familyName as! String)
            fontNames.append(familyName as! String)

        }
    }

我试图在 UILabel 内的 one 行中显示此字体名称,它在某些情况下有效,但在某些情况下无效,我不知道为什么。 这就是我 "adjust" 里面的字体 cellForItemAtIndexPath :

   cell.lbl_font.adjustsFontSizeToFitWidth = true
   cell.lbl_font.numberOfLines = 1
   cell.lbl_font.minimumScaleFactor = 0.1
   cell.lbl_font.baselineAdjustment = .AlignCenters
   cell.lbl_font.textAlignment  = NSTextAlignment.Center

我也通过故事板修改了这个属性:

结果:

更新:

如何将文本应用于单元格。其中 lbl_font 是单元格内的标签, 里面 cellForItemAtIndexPath

  let cell : textCell = collectionView.dequeueReusableCellWithReuseIdentifier("text_cell", forIndexPath: indexPath) as! textCell
       cell.lbl_font.text = fontNames[indexPath.row]
      cell.lbl_font.font = UIFont(name:fontNames[indexPath.row], size:    cell.lbl_font.font.pointSize)
      cell.lbl_font.adjustsFontSizeToFitWidth = true
      cell.lbl_font.numberOfLines = 1
      cell.lbl_font.minimumScaleFactor = 0.1
      cell.lbl_font.baselineAdjustment = .AlignCenters
      cell.lbl_font.textAlignment  = NSTextAlignment.Center
      return cell

最小字体缩小 属性 可用。它将字体大小缩小为与当前磅值的最小比例。如果内容变得超过字体比例,那么它将在末尾挑衅地显示截断点(...)。

例如:

我在这里设置 属性 最小字体比例为 0.4。

在这里您可以看到不同的文本应用了相同的 属性。

第一个和第二个标签会调整字体大小,因为内容较少,按最小字体比例调整。但在第 3 次中,最小字体比例和标签的内容不匹配,然后它将显示带截断的点(...)。

对于这个问题,您应该知道该标签上应该显示多少内容,或者为了更好地使用,您可以使用多行标签。

希望回答对您有所帮助。