UILabel自动调整大小(高度,宽度)

要设置label的行数为0,注意一点小问题,就是一般情况下计算出来的高度和宽度在应用中还是会出现点问题的[显示偏小],只要在设置高度或者宽度的时候在actualSize的基础上加上3~5像素即可

    UIFont * textFont = [UIFont systemFontOfSize:36];
    //最大尺寸
    // MAXFLOAT 为可设置的最大高度
    // 长度固定,自动调整高度
    CGSize size = CGSizeMake(300, MAXFLOAT);
    // 高度固定,自动调整长度
    CGSize size2 = CGSizeMake(MAXFLOAT,18 );
    //获取当前那本属性
    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:textFont,NSFontAttributeName, nil];
    //实际尺寸(需要自动调整什么,就取width或者height)
    CGSize actualSize = [label.text boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
写了一个函数
/** isWidth是否需要的是宽度,length另外一边的长度(固定的长度),text内容,fontOfSize文字大小 */
- (CGFloat)getFloatisWidth:(BOOL)isWidth fixedLength:(float)length withLabelText:(NSString *)text fontOfSize:(float)fontOfSize {
    
    UIFont * textFont = [UIFont systemFontOfSize:fontOfSize];
    
    // MAXFLOAT 为可设置的最大高度
    CGSize size = CGSizeMake(0, 0);
    if (isWidth) {
        // 高度固定,自动调整长度
        size = CGSizeMake(MAXFLOAT,length);
    } else {
        // 长度固定,自动调整高度
        size = CGSizeMake(length, MAXFLOAT);
    }
    
    //获取当前那本属性
    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:textFont,NSFontAttributeName, nil];
    //实际尺寸(需要自动调整什么,就取width或者height)
    CGSize actualSize = [text boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;

    if (isWidth) {
        return actualSize.width+3;
    } else {
        return actualSize.height+3;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于UILabel其实我觉得并没有太多的要素需要仔细去弄明白的,因为至今为止,我所了解到的label属性不外乎就是...
    懒惰的习惯阅读 583评论 0 0
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,827评论 1 92
  • UILabel是一个常用的控件,它的属性设置的方法在纯代码中经常使用。在storyboard中,使用UILabel...
    坤哥lqk阅读 872评论 0 2
  • 在实际工作当中,难免会向领导汇报工作,行走在职场向领导汇报确实是一门艺术,什么该问,什么不该问,什么时间问,什么场...
    镜波阅读 2,083评论 0 0
  • 这样的选择才不叫辜负 说实话,我一直活着别人羡慕的生活,自由工作,收入不错,时间还多,奔波四方。 但是在这背后的我...
    鸡血怡阅读 2,462评论 6 6