iOS UILabel 文字 置顶/置底 实现_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > iOS UILabel 文字 置顶/置底 实现

iOS UILabel 文字 置顶/置底 实现

 2017/12/5 11:15:50  海风凉  程序员俱乐部  我要评论(0)
  • 摘要:iOSUILabel控件默认文字位置是居中的,如图所示:但是我们经常碰到这样的需求,希望文字向上置顶,或者向下置底,但是很遗憾,iOSAPI中并没有提供相应的属性和方法,需要我们手动设置。利用分类(category)为UILabel添加属性isTop和isBottom来控制文字是否置顶和置底。实现:利用往文字后面活前面下面添加”\n”来实现文字填充满整个UILable控件实现置顶/置顶效果.h文件#import<UIKit/UIKit.h>@interfaceUILabel
  • 标签:实现 iOS

iOS UILabel控件默认文字位置是居中的,如图所示:

 

但是我们经常碰到这样的需求,希望文字向上置顶,或者向下置底,但是很遗憾,iOS API中并没有提供相应的属性和方法,需要我们手动设置。

利用 分类(category)为UILabel添加属性 isTop 和 isBottom来控制文字是否置顶和置底。

实现:利用往文字后面活前面下面添加”\n”来实现文字填充满整个UILable控件实现置顶/置顶效果

.h文件

class="prettyprint">has-numbering">#import <UIKit/UIKit.h>

@interface UILabel (TextAlign)

@property (nonatomic, assign) BOOL isTop;
@property (nonatomic, assign) BOOL isBottom;

@end

 

.m文件

#import "UILabel+TextAlign.h"

@implementation UILabel (TextAlign)

-(void)setIsTop:(BOOL)isTop {

    if (isTop) {

        CGSize fontSize = [self.text sizeWithFont:self.font];
        //控件的高度除以一行文字的高度
        int num = self.frame.size.height/fontSize.height;
        //计算需要添加换行符个数
        int newLinesToPad = num  - self.numberOfLines;
        self.numberOfLines = 0;
        for(int i=0; i<newLinesToPad; i++)
            //在文字后面添加换行符"/n"
            self.text = [self.text stringByAppendingString:@"\n"];
    }
}

-(void)setIsBottom:(BOOL)isBottom {

    if (isBottom) {
        CGSize fontSize = [self.text sizeWithFont:self.font];
        //控件的高度除以一行文字的高度
        int num = self.frame.size.height/fontSize.height;
        //计算需要添加换行符个数
        int newLinesToPad = num  - self.numberOfLines;
        self.numberOfLines = 0;
        for(int i=0; i<newLinesToPad; i++)
            //在文字前面添加换行符"/n"
            self.text = [NSString stringWithFormat:@" \n%@",self.text];
    }
}

@end

 

使用方法 
导入头文件

#import "UILabel+TextAlign.h"

然后设置属性


//置顶
self.lb.isTop = YES;

//置底
self.lb.isBottom = YES;
源码免费下载地址:http://www.jinhusns.com/Products/Download/

 

 

发表评论
用户名: 匿名