版本記錄
版本號(hào) | 時(shí)間 |
---|---|
V1.0 | 2017.10.31 |
前言
在app中,很多時(shí)候都需要熟悉一些小技巧讓您事半功倍辱士,提高工作效率锭沟,這些小技巧都很小很細(xì)。感興趣的可以看看我寫的其他小技巧识补。
1. 實(shí)用小技巧(一):UIScrollView中上下左右滾動(dòng)方向的判斷
2. 實(shí)用小技巧(二):屏幕橫豎屏的判斷和相關(guān)邏輯
3.實(shí)用小技巧(三):點(diǎn)擊手勢(shì)屏蔽子視圖的響應(yīng)
4.實(shí)用小技巧(四):動(dòng)態(tài)的增刪標(biāo)簽視圖
5.實(shí)用小技巧(五):通過(guò)相冊(cè)或者相機(jī)更改圖標(biāo)
6.實(shí)用小技巧(六):打印ios里所有字體
7. 實(shí)用小技巧(七):UITableViewCell自適應(yīng)行高的計(jì)算
8. 實(shí)用小技巧(八):數(shù)字余額顯示的分隔
9.實(shí)用小技巧(九):類頭條模糊背景的實(shí)現(xiàn)
10.實(shí)用小技巧(十):晃動(dòng)手機(jī)換后臺(tái)服務(wù)器網(wǎng)絡(luò)
11.實(shí)用小技巧(十一):scrollView及其子類顯示的一些異常處理
12.實(shí)用小技巧(十二):頭像圖片縮放以及保存到相冊(cè)簡(jiǎn)單功能的實(shí)現(xiàn)
13.實(shí)用小技巧(十三):一種類酷我音樂(lè)盒動(dòng)畫實(shí)現(xiàn)
14.實(shí)用小技巧(十四):生成跳往applestore指定app的方法
15.實(shí)用小技巧(十五):左側(cè)向右滑動(dòng)返回上一級(jí)控制器
16.實(shí)用小技巧(十六):獲取設(shè)備信息
17.實(shí)用小技巧(十七):清除緩存目錄
18.實(shí)用小技巧(十八):取出gif圖的每一幀
19.實(shí)用小技巧(十九):獲取相機(jī)和麥克風(fēng)權(quán)限
20.實(shí)用小技巧(二十):游客模式的實(shí)現(xiàn)
21.實(shí)用小技巧(二十一):版本檢測(cè)的實(shí)現(xiàn)
22.實(shí)用小技巧(二十二):鍵盤遮擋問(wèn)題
23. 實(shí)用小技巧(二十三):獲取閃光燈的控制
24. 實(shí)用小技巧(二十四):APP頁(yè)面開(kāi)啟跳轉(zhuǎn)邏輯處理
UILabel控件
UILabel
控件很簡(jiǎn)單的一個(gè)東西族淮,但是做UI的時(shí)候我們卻需要非常注意的地方,ios系統(tǒng)不同的字體大小都不一樣凭涂,比如說(shuō)ios8的字體就相對(duì)很大祝辣,ios11就比ios8字體小,而且字形還有一定的差別切油。
下面我們隨便來(lái)一個(gè)UILabel控件蝙斜,如下圖所示。
下面我們打印出這個(gè)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看一下尺寸孕荠。
可見(jiàn)UILabel的邊框距離字的邊緣還是有3點(diǎn)距離的。
UILabel尺寸的計(jì)算
下面我們就計(jì)算下UILabel的尺寸攻谁。
1. 單行文本的尺寸計(jì)算
下面我們看一下代碼稚伍。
//單行文本
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);
下面看輸出結(jié)果
2017-10-31 22:45:32.481076+0800 JJUILabel[1310:75048] size = 176.000000 -- 24.921875
2. 多行文本的計(jì)算
下面我們看一下多行文本的size尺寸的計(jì)算。
//多行文本
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);
下面看輸出結(jié)果
2017-10-31 23:16:22.488901+0800 JJUILabel[1627:118890] rect =
width = 242.000000 --
height = 149.531250 --
x = 0.000000 --
y = 0.000000
后記
未完戚宦,待續(xù)~~~