zoukankan      html  css  js  c++  java
  • UILabel顶端对齐

    比较一劳永逸的写法是对label添加一个分类

    @interface UILabel (VerticalAlign)
    /** 顶端对齐 */
    -(void)alignTop;
    /** 底部对齐 */
    -(void)alignBottom;
    @end
    -(void)alignTop{
        CGSize fontSize = [self.text sizeWithAttributes:@{NSFontAttributeName:self.font}];
        double finalHeight = fontSize.height * self.numberOfLines;
        double finalWidth = self.frame.size.width;
        CGSize theStringSize = [self.text boundingRectWithSize:CGSizeMake(finalWidth, finalHeight)
                                                       options:NSStringDrawingUsesLineFragmentOrigin
                                                    attributes:@{NSFontAttributeName:self.font}
                                                       context:nil].size;
        int newLinesToPad = (finalHeight - theStringSize.height) / fontSize.height;
        for(int i=0; i<newLinesToPad; i++){
            self.text = [self.text stringByAppendingString:@"
     "];
        }
    }
    -(void)alignBottom{
        CGSize fontSize = [self.text sizeWithAttributes:@{NSFontAttributeName:self.font}];
        double finalHeight = fontSize.height * self.numberOfLines;
        double finalWidth = self.frame.size.width;
        CGSize theStringSize = [self.text boundingRectWithSize:CGSizeMake(finalWidth, finalHeight)
                                                       options:NSStringDrawingUsesLineFragmentOrigin
                                                    attributes:@{NSFontAttributeName:self.font}
                                                       context:nil].size;
        int newLinesToPad = (finalHeight - theStringSize.height) / fontSize.height;
        for(int i=0; i<newLinesToPad; i++){
            self.text = [NSString stringWithFormat:@" 
    %@",self.text];
        }
    }

    然后在使用时添加[myLabel alignTop]即可。
    添加前

    使用后

  • 相关阅读:
    Spring学习笔记
    Bash编程(6) String操作
    Bash编程(5) Shell方法
    Bash编程(4) 参数与变量
    Bash编程(2) 循环与分支
    CentOS 升级 openSSH
    Bash编程(1) 基础
    DNS配置
    资料收集:学习 Linux/*BSD/Unix 的 30 个最佳在线文档
    【数位DP】[LOJ10168] 恨7不成妻
  • 原文地址:https://www.cnblogs.com/Apologize/p/5908537.html
Copyright © 2011-2022 走看看