iOS UILabel 文字 置顶/置底 实现

本文介绍了一种通过为UILabel添加属性isTop和isBottom来控制文字置顶或置底的方法。通过在文字前后添加换行符实现填充整个控件高度的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
源码免费下载地址:http://www.jinhusns.com/Products/Download/

 

 

转载于:https://www.cnblogs.com/haifengliang/p/7985521.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值