版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.10.31 |
前言
在app中,很多时候都需要熟悉一些小技巧让您事半功倍,提高工作效率,这些小技巧都很小很细。感兴趣的可以看看我写的其他小技巧。
1. 实用小技巧(一):UIScrollView中上下左右滚动方向的判断
2. 实用小技巧(二):屏幕横竖屏的判断和相关逻辑
3.实用小技巧(三):点击手势屏蔽子视图的响应
4.实用小技巧(四):动态的增删标签视图
5.实用小技巧(五):通过相册或者相机更改图标
6.实用小技巧(六):打印ios里所有字体
7. 实用小技巧(七):UITableViewCell自适应行高的计算
8. 实用小技巧(八):数字余额显示的分隔
9.实用小技巧(九):类头条模糊背景的实现
10.实用小技巧(十):晃动手机换后台服务器网络
11.实用小技巧(十一):scrollView及其子类显示的一些异常处理
12.实用小技巧(十二):头像图片缩放以及保存到相册简单功能的实现
13.实用小技巧(十三):一种类酷我音乐盒动画实现
14.实用小技巧(十四):生成跳往applestore指定app的方法
15.实用小技巧(十五):左侧向右滑动返回上一级控制器
16.实用小技巧(十六):获取设备信息
17.实用小技巧(十七):清除缓存目录
18.实用小技巧(十八):取出gif图的每一帧
19.实用小技巧(十九):获取相机和麦克风权限
20.实用小技巧(二十):游客模式的实现
21.实用小技巧(二十一):版本检测的实现
22.实用小技巧(二十二):键盘遮挡问题
23. 实用小技巧(二十三):获取闪光灯的控制
24. 实用小技巧(二十四):APP页面开启跳转逻辑处理
UILabel控件
UILabel
控件很简单的一个东西,但是做UI的时候我们却需要非常注意的地方,ios系统不同的字体大小都不一样,比如说ios8的字体就相对很大,ios11就比ios8字体小,而且字形还有一定的差别。
下面我们随便来一个UILabel控件,如下图所示。
下面我们打印出这个UILabel的尺寸。
2017-10-31 22:32:41.686983+0800 JJUILabel[1093:52590] self.tipLabel = <UILabel: 0x7fbf2df088b0;
frame = (98.5 320.5; 178.5 26.5);
text = '我是不一样的烟火';
opaque = NO;
autoresize = RM+BM;
userInteractionEnabled = NO;
layer = <_UILabelLayer: 0x604000096940>>
下面我们用Sketch看一下尺寸。
可见UILabel的边框距离字的边缘还是有3点距离的。
UILabel尺寸的计算
下面我们就计算下UILabel的尺寸。
1. 单行文本的尺寸计算
下面我们看一下代码。
//单行文本
self.tipLabel.text = @"我是不一样的烟火";
self.tipLabel.textColor = [UIColor redColor];
self.tipLabel.font = [UIFont fontWithName:@"Courier New" size:22.0];
CGSize size = [self.tipLabel.text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:self.tipLabel.font, NSFontAttributeName, nil]];
NSLog(@"size = %lf -- %lf", size.width, size.height);
下面看输出结果
2017-10-31 22:45:32.481076+0800 JJUILabel[1310:75048] size = 176.000000 -- 24.921875
2. 多行文本的计算
下面我们看一下多行文本的size尺寸的计算。
//多行文本
self.tipLabel.text = @"我是不一样的烟火我是不一样的烟火我是不一样的烟火我是不一样的烟火我是不一样的烟火我是不一样的烟火我是不一样的烟火我是不一样的烟火";
self.tipLabel.textColor = [UIColor redColor];
self.tipLabel.numberOfLines = 0;
self.tipLabel.font = [UIFont fontWithName:@"Courier New" size:22.0];
CGRect rect = [self.tipLabel.text boundingRectWithSize:CGSizeMake(250.0, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : self.tipLabel.font} context:nil];
NSLog(@"rect = width = %lf -- height = %lf -- x = %lf -- y = %lf", rect.size.width, rect.size.height, rect.origin.x, rect.origin.y);
下面看输出结果
2017-10-31 23:16:22.488901+0800 JJUILabel[1627:118890] rect =
width = 242.000000 --
height = 149.531250 --
x = 0.000000 --
y = 0.000000
后记
未完,待续~~~