你的位置:首页 > 软件开发 > 操作系统 > iOS UILabel 文字 置顶/置底 实现

iOS UILabel 文字 置顶/置底 实现

发布时间:2017-12-04 19:00:06
iOS UILabel控件默认文字位置是居中的,如图所示: 但是我们经常碰到这样的需求,希望文字向上置顶,或者向下置底,但是很遗憾,iOS API中并没有提供相应的属性和方法,需要我们手动设置。利用 分类(category)为UILabel添加属性 isTop 和 isB ...

iOS UILabel 文字 置顶/置底 实现

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

iOS UILabel 文字 置顶/置底 实现

 

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

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

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

.h文件

#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;
源码免费下载地址 src='/images/loading.gif' data-original="http://images2017.cnblogs.com/blog/1199156/201712/1199156-20171205100159284-383883611.png"  width="561" height="771">

 

原标题:iOS UILabel 文字 置顶/置底 实现

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。