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 次中,最小字体比例和标签的内容不匹配,然后它将显示带截断的点(...)。
对于这个问题,您应该知道该标签上应该显示多少内容,或者为了更好地使用,您可以使用多行标签。
希望回答对您有所帮助。
我的 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 次中,最小字体比例和标签的内容不匹配,然后它将显示带截断的点(...)。
对于这个问题,您应该知道该标签上应该显示多少内容,或者为了更好地使用,您可以使用多行标签。
希望回答对您有所帮助。