- 在使用UILabel存放字符串時,經(jīng)常需要獲取label的長寬數(shù)據(jù),本文列出了部分常用的計算方法。
1.獲取寬度,獲取字符串不折行單行顯示時所需要的長度
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)];
注:如果想得到寬度的話儒洛,size的width應該設(shè)為MAXFLOAT。
2.獲取高度狼速,獲取字符串在指定的size內(nèi)(寬度超過label的寬度則換行)所需的實際高度.
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
注:如果想得到高度的話琅锻,size的height應該設(shè)為MAXFLOAT。
3.實際編程時向胡,有時需要計算一段文字最后一個字符的位置恼蓬,并在其后添加圖片或其他控件(如info圖標),下面代碼為計算label中最后一個字符后面一位的位置的方法僵芹。
CGSize sz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(MAXFLOAT, 40)];CGSize linesSz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];if(sz.width <= linesSz.width)
//判斷是否折行
{ lastPoint = CGPointMake(label.frame.origin.x + sz.width, label.frame.origin.y); }else { lastPoint = CGPointMake(label.frame.origin.x + (int)sz.width % (int)linesSz.width,linesSz.height - sz.height); }
- 帶屬性的字符串(NSMutableAttributedString)的使用**
1.創(chuàng)建對象 NSString *original = @"今天你還好嗎处硬?"; NSMutableAttributedString *attrTitle = [[NSMutableAttributedStringalloc] initWithString:original];
2.設(shè)置顏色
(NSForegroundColorAttributeName代表要設(shè)置顏色, value代表值拇派, range 代表范圍) /**
其他設(shè)置:
1.NSForegroundColorAttributeName //顏色
2.NSFontAttributeName //字體
3.NSBackgroundColorAttributeName //背景色
//還有其他的很多的屬性荷辕,可以自己去看蘋果的API,這里不再詳述 */
[attrTitle addAttribute:NSForegroundColorAttributeName value:[UIColorblueColor] range:NSMakeRange(0, 2)];
3.添加到Label中 UILabel *label = [[UILabel alloc] init]; label.frame = CGRectMake(100, 100, 100, 40); [label setAttributedText:attrTitle]; [self.view addSubview:label];
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者