zoukankan      html  css  js  c++  java
  • 修改UILabel的行间距

    在iOS开发中  有时候为了调整一些UI效果  我们需要调整UILabel之间的行间距:

    contentLabel.text:label上显示的文字内容;

    5:label行间距;

    contentLabel:需要设置行间距的label

    contentTextFont:字体大小;

    contentLabelW:label的宽度

    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:contentLabel.text];;
                NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
                [paragraphStyle setLineSpacing:5];
                [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, contentLabel.text.length)];
                
                contentLabel.attributedText = attributedString;
                

    //调节高度(在计算label的高度的时候需要注意 因为行间距变化了 不再是系统默认的行间距了 所以在计算的时候要根据实际的行间距去调整)
        CGSize contentTextSize = [self sizeOfText:contentLabel.text WithFont:contentTextFont maxSize:CGSizeMake(contentLabelW, CGFLOAT_MAX)];
        CGSize size = [contentlabel.text sizeWithFont:contentTextFont];
        int length = size.height;
        int colomNumber = contentTextSize.height/length;
    //contentLabelH 就是label的实际高度 CGFloat contentLabelH
    = contentTextSize.height+colomNumber*5;
                //CGSize size = CGSizeMake(width, 500000);
                
                //CGSize labelSize = [contentLabel sizeThatFits:size];

    高度计算思路:

    首先要计算label的高度(这个高度是按照系统方法计算的  所以间距也是系统默认的间距  很小的)  然后计算label中每行文字对应的高度  然后label高度除以文字的高度就是label行数  

    当我们知道label的行数是 也知道了行间距 

    那么label的实际高度就是label的高度(这个高度是按照系统方法计算的  所以间距也是系统默认的间距  很小的)加上(行数*间距)

    PS:这个计算方法不是很好  忽略了系统默认的间距 虽然默认的间距很小 但是忽略的话也会给实际尺寸的计算带来较大误差  另外计算也比较麻烦  我觉得应该还有更简单更方便的方法  只是一时没想到  如果有知道更好方法的小伙伴 请联系我!

  • 相关阅读:
    关于Socket.IO
    关于js的执行与加载
    关于XSS
    关于浏览器的渲染过程
    关于高级前端的面试题
    关于js的设计模式(简单工厂模式,构造函数模式,原型模式,混合模式,动态模式)
    关于js的高级函数(惰性函数,函数柯里化,级联函数)
    关于map
    bzoj 2744: [HEOI2012]朋友圈 二分图匹配
    bzoj 3637: Query on a tree VI 树链剖分 && AC600
  • 原文地址:https://www.cnblogs.com/gaoxiaoniu/p/5308077.html
Copyright © 2011-2022 走看看