博客> Label的文字自适应
Label的文字自适应
2017-12-15 05:41 评论:0 阅读:440 向上的小草
ios label 高度自适应 宽度自适应
今天测试的妹子发出测试报告,其中有一处label的文字显示不全。开启了修复bug之路。

在网上找的label文字自适应都不是自己想要的,要么只有高度自适应,要么只有宽度自适应,于是决定自己想办法解决这个问题。废话不多说,结果如下,直接上代码:

注:一下代码旨在找到最合适label显示的字体(默认为system的字体),如有其它特殊需要可以自行扩展。

/** 根据label的大小获取适当的字体

@param labelSize label的尺寸 @param string 文字 @param minFontSize 限制的最小字体大小 @param maxFontSize 限制的最大字体大小 @return 返回字体 */

  • (UIFont )getFontWithLabelSize:(CGSize)labelSize string:(NSString )string minFontSize:(CGFloat)minFontSize maxFontSize:(CGFloat)maxFontSize { BOOL stop = NO; CGFloat minSize = minFontSize >= 0 ? minFontSize : 0.5; CGFloat maxSize = maxFontSize > 0 ? maxFontSize : 72.0; CGFloat fontSize = maxSize; CGSize textSize = CGSizeZero; while (!stop) { textSize = [string sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:fontSize]}]; if ((textSize.width < labelSize.width) && (textSize.height < labelSize.height)) { stop = YES; }else{ fontSize -= 0.5; } if (fontSize <= minSize) { fontSize = minSize; stop = YES; } } return [UIFont systemFontOfSize:fontSize]; }

    以上代码只是个人之见,如有不完善的地方或者有更好的实现方式可以联系我更正。在此先行谢过!

收藏
0
sina weixin mail 回到顶部