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/

iOS UILabel 文字 置顶/置底 实现的更多相关文章

  1. iOS UILabel文字自适应高度自适应

    第一步:创建UILabel对象,并设置一些基本设置 UILabel *label = [[UILabel alloc] init]; label.text = @"8月29日,在雅加达亚运会 ...

  2. iOS UILabel文字缩进

    使用NSMutableParagraphStyle实现label文字首尾的缩进 NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphSty ...

  3. jQuery 元素的选中, 置顶、上移、下移、置底、删除

    如截图: <ul> <li class="li01" onclick="C_columnSetTop(this)"><i>& ...

  4. js上移、下移、置顶、置底功能实现

    实现页面上列表内容上移.下移.置顶.置底 功能,主要实现思路是节点操作,比如说:上移,直接把点击项移动到前一个节点,以此类推,当然实际代码实现还要加些判断,如当前点击操作项是否已经是置底或置底了,如果 ...

  5. js滚动显示: 滚动条置顶/底

    <script> //当聊天室的内容超出页面范围时, 如何让页面刷新后 显示最下面的内容 document.getElementByIdx ( 'chatboard').scrollTop ...

  6. jquery中的置顶,置底,向上,向下的排序功能

    css .selectedLi{background: #f0ad4e;color:#fff;} html部分 <ul class="seetSelect2" id='sys ...

  7. FMX 窗口置顶 或置底 xe10

    FMX 窗口置顶  或置底 xe10 Popup 置底 StayOnTop 置顶

  8. IOS 作业项目 TableView两个section中cell置顶功能实现

    点击cell会置顶,其他的下移

  9. 【iOS开发系列】cell切割线置顶

    废话不多说,直接上代码: /** * tableViewCell切割线左側置顶 < 1 > */ -(void)viewDidLayoutSubviews { if ([_tableVie ...

随机推荐

  1. 让你的Spring Boot应用快速运行在Docker上面

    前置条件: 1. 服务器(我这边是CentOS7)上已经安装了Docker(安装步骤很简单,可以参考我上一篇博客) 2.服务器上已经安装了Java和Maven 在满足以上条件后,我们就可以开始了: 1 ...

  2. vue中数据添加完成以后,数据回显

    1.格式 <FormItem label="奖品领取类型:" prop="getType" > <RadioGroup v-model=&qu ...

  3. ubuntu系统检测端口占用情况

    参考链接: https://blog.csdn.net/qwfys200/article/details/80837036 命令: $ sudo netstat -tupln

  4. TLS1.3&TLS1.2形式化分析

    本博客是对下面博客连接上的原文进行梳理+自己在其他方面资料做个整理 https://blog.csdn.net/andylau00j/article/details/79269499 https:// ...

  5. 【微信小程序canvas】实现小程序手写板用户签名(附代码)

    工作中公司业务需要的微信小程序用户签字功能 先看效果图: wxml: <view class="wrapper"> <view class="handB ...

  6. MathType7.X链接:https://pan.baidu.com/s/1rQ5Cwk5_CC9UgvgaYPVCCg 提取码:6ojq 复制这段内容后打开百度网盘手机App,操作更方便哦完美解压,无限使用

    最近在写论文的过程中使用到了MathType,但是由于MathType30天使用已经过期,有些特殊符号用不了,于是开始找各种破解版.好吧,花了整整两个小时才算搞定,真是一部血泪史,现在把安装破解教程贴 ...

  7. python json按输入顺序输出内容

    通过使用collecions,进行排序.collections是一个python的内建模块. import collections dic = collections.OrderedDict() # ...

  8. Intellij IDEA 代码格式化/保存时自动格式化

    这里介绍使用google style 一.安装插件 1.settings -> plugins 选择 Browse repositories… 2.搜索google-java-format 和 ...

  9. Python 实现auto linlink 连连看

    先上知乎上大神所写: 你看过/写过哪些有意思的代码? 然后别急着看blog,玩一把游戏再说! 看知乎评论,有人说他用了一个下午时间就写出来了. wo kao!!! 我断断续续写了一周的下午才搞定,然后 ...

  10. https和http 调用过程中请求头 referrer 获取不到的问题

    HTTP协议规定: Clients SHOULD NOT include a Referer header field in a (non-secure) HTTP request if the re ...