zoukankan      html  css  js  c++  java
  • 控制UIlabel 垂直方向对齐方式的 方法

    最正统的方法,利用objective-c的category特性,修改UILabel的绘制代码。示例代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    // -- file: UILabel+VerticalAlign.h
    #pragma mark VerticalAlign
    @interface UILabel (VerticalAlign)
    - (void)alignTop;
    - (void)alignBottom;
    @end
    // -- file: UILabel+VerticalAlign.m
    @implementation UILabel (VerticalAlign)
    - (void)alignTop {
        CGSize fontSize = [self.text sizeWithFont:self.font];
        double finalHeight = fontSize.height * self.numberOfLines;
        double finalWidth = self.frame.size.width;    //expected width of label
        CGSize theStringSize = [self.text sizeWithFont:self.font constrainedToSize:CGSizeMake(finalWidth, finalHeight) lineBreakMode:self.lineBreakMode];
        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 sizeWithFont:self.font];
        double finalHeight = fontSize.height * self.numberOfLines;
        double finalWidth = self.frame.size.width;    //expected width of label
        CGSize theStringSize = [self.text sizeWithFont:self.font constrainedToSize:CGSizeMake(finalWidth, finalHeight) lineBreakMode:self.lineBreakMode];
        int newLinesToPad = (finalHeight  - theStringSize.height) / fontSize.height;
        for(int i=0; i<newLinesToPad; i++)
            self.text = [NSString stringWithFormat:@" 
    %@",self.text];
    }
    @end
    

     

  • 相关阅读:
    转(一万小时定律的文章): const 与 readonly区别...
    项目中报错邮件方法
    Windows Phone(一) 正式开发之前的准备资料(主要注册开发者账号,手机解锁,激活码,程序部署)
    转(ASP.NET页面缓存)
    部署XAP时,部署工具提示部署无效,求解决!
    jQuery 1
    DOMform
    jQuery 2 一些常用的函数
    jQuery 6 层次选择器
    jQuery 3 对象转换
  • 原文地址:https://www.cnblogs.com/liyufeng2013/p/UILabel.html
Copyright © 2011-2022 走看看