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;
<strong>源码免费下载地址:http://www.jinhusns.com/Products/Download/</strong>
相关推荐
我的iOS王者之路 2019-06-28
tzshlyt 2019-06-20
MinggeQingchun 2015-07-13
惠秀宝 2013-04-12
石虎 2014-07-21
Mangoios 2014-06-05
最美应用有价值的好应用 2018-03-08
BAT 批处理程序 2017-07-03