uilabel 垂直居中对齐_给UILabel的文字添加垂直对齐的方式
UILabel的文字默认是垂直居中显示的,而且UILabel并没有为我们提供设置垂直对齐方式的选项,所以要自己想办法了。
我的办法是给UILabel添加一个Category,来修改UILabel的绘制。话不多说上代码:
// UILabel+VerticalAlignment.h
#import
@interface UILabel (VerticalAlignment)
// 文字顶部对齐
- (void)textAlignmentTop;
// 文字底部对齐
- (void)textAlignmentBottom;
@end
// UILabel+VerticalAlignment.m
#import "UILabel+VerticalAlignment.h"
@implementation UILabel (VerticalAlignment)
- (void)textAlignmentTop {
self.numberOfLines = 0;
CGSize fontSize = [self.text sizeWithAttributes:@{NSFontAttributeName:self.font}];
double finalWidth = self.frame.size.width;
CGSize maximumSize = CGSizeMake(finalWidth, CGFLOAT_MAX);
CGRect stringSize = [self.text boundingRectWithSize:maximumSize options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:self.font} context:nil];
int lines = (self.frame.size.height - stringSize.size.height) / fontSize.height;
for (int i = 0; i < lines; i++) {
self.text = [self.text stringByAppendingString:@"\n"];
}
}
- (void)textAlignmentBottom {
self.numberOfLines = 0;
CGSize fontSize = [self.text sizeWithAttributes:@{NSFontAttributeName:self.font}];
double finalWidth = self.frame.size.width;
CGSize maximumSize = CGSizeMake(finalWidth, CGFLOAT_MAX);
CGRect stringSize = [self.text boundingRectWithSize:maximumSize options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:self.font} context:nil];
int lines = (self.frame.size.height - stringSize.size.height) / fontSize.height;
for (int i = 0; i < lines; i++) {
self.text = [NSString stringWithFormat:@" \n%@",self.text];
}
}
@end
uilabel 垂直居中对齐_给UILabel的文字添加垂直对齐的方式相关推荐
- html5中底部对齐怎么写,css设置元素底部垂直对齐
css中怎么让div里面的文字底部对齐 两种办法,第一种可以作为默认选择.两种办法都可以让文字底部对齐. css如何使div里面的文字垂直对齐 页面里有五段文字/图片,我想使每个部分的文字,像旁边的图 ...
- word分散对齐调整宽度_Word中文字很难对齐?有了这4个方法,2秒可对齐Word中所有文字...
在使用Word的时候,不少人有这样的烦恼:Word中的文字对齐不了,浪费了好多时间,还是弄不好.那么今天小编就来分享几个好用的Word中文字对齐的方法,下面就一起来看看吧~ 一.简单操作 1.分散对齐 ...
- android文字与图片底部对齐,ImageView 图片和 TextView 文字的底部对齐
有时我们需要做到大文字小图片在一行显示,并且图片跟文字的底部对齐,如图: 以 RelativeLayout 为例: 1. 当 ImageView 设置了 alignBottom 属性,对齐的方式是这样 ...
- html如何将段落对齐,如何用CSS设置段落的垂直对齐(附代码)
在浏览网页时,经常看到一些段落他是垂直对齐的,今天这篇文章就和大家讲讲如何用CSS设置段落的垂直对齐,有需要的朋友可以参考一下,希望对你有所帮助. CSS中通过属性vertical-align来设置段 ...
- html定义字体纵向对齐,HTML5 Canvas的文本如何实现垂直对齐
垂直对齐,使用CSS很容易实现,如果想在HTML5 Canvas中实现垂直对齐,如何设置呢,这就是今天要分享的笔记. HTML画布垂直对齐的文本,我们可以使用的textBaseline在画布范围内的属 ...
- 代码居中对齐_一篇文章带你了解CSS对齐方式
一.居中 1. 居中对齐元素 将块元素水平居中对齐(像 ) , 使用 margin: auto; 设置元素的宽度将阻止它伸展到容器的边缘. 然后元素将占用指定的宽度,剩下的空间将平分在两个边距之间: ...
- php图片文字垂直对齐,记一次解决字体图标垂直对齐问题的过程
最近处理了一个字体图标没有在容器中垂直居中的样式问题.原本以为,只是 css 写的不正确,实际却并没有那么简单. 一番波折后,最终发现,是因为一处小细节,挖出了个大坑. 在处理问题的整个过程中,一方面 ...
- CSS span标签中文字水平垂直对齐
1.text-align: center--水平居中 仅对文字.图片.按钮等行内元素有效(display设置为inline或inline-block等)进行水平居中 2.height:60px;lin ...
- wpf toolbar右对齐_侧方停车是与旁车对齐还是反光镜对B柱?有什么停车技巧吗
虽然考证前在驾校狠练了不少倒车入库,但是等到实际开车的时候,停车还是不少新手司机最头疼的问题. 你问的,侧方停车是两车对齐,还是看反光镜,其实都是可以的: 两车对齐侧方停车: 第一步:将车开过目标停车 ...
最新文章
- mysql 分库分表,真的能支持服务无限扩容么?
- java socket负载均衡_Java Socket分发服务负载均衡
- manjaro笔记本显卡驱动_从入门到高端!AMD Radeon RX 500系列移动显卡全解析
- 神策 FM |「聚焦」细分市场是独角兽诞生的营销关键
- 优秀的硕博士们,他们的朋友圈都有什么特点?
- android studio初始化设置,Android studio 初始设置
- 程序员去交友网站找女友,没想到找到了这个...
- gdiplus判断一个点是否在圆弧线上_福建教师招聘考试小学数学面试教案:圆的认识...
- Z-BlogPHP导航主题模版源码 绿色完美版
- [2012.04.03] Windows Phone 上的汉语拼音以及多音字处理
- 一个长方体玻璃容器从里面量长宽_在玻璃鱼缸里用微型观叶植物布置景观,比盆景还要迷人...
- 计算机图形设计案例,9《计算机图形图像的设计的案例实训题.doc
- 走迷宫 6 6 c语言,游戏迷宫的实现
- 【vue】vue中如何实现SPA 单页面应用_09
- 你被选中了——晚会上的随机点名
- 年轻时放纵享乐,不要指望年老时一念向善
- hdu 5208 Where is Bob
- RC电路 波形分析
- encapsulation dot1q vlan-id命令
- 下载阿里云OSS上的文件及文件夹