- (void)viewDidLoad {
[super viewDidLoad];
//新建lable控件
UILabel *lable=[[UILabel alloc]init]; lable.backgroundColor=[UIColor orangeColor];
//設置字體大小 UIFont *font=[UIFont systemFontOfSize:15]; lable.text=@"hello world!"; lable.font=font;
//自動換行 lable.numberOfLines=0;
//設置文本范圍。200代表寬度最大為200,到了200則換到下一行;MAXFLOAT代表長度不限 CGSize strSize=CGSizeMake(200, MAXFLOAT);
//需跟lable字體大小一直,否則會顯示不全等問題 NSDictionary *attr=@{NSFontAttributeName:font}; CGSize lableSize=[lable.text boundingRectWithSize:strSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attr context:nil].size; lable.frame=CGRectMake(100, 100, lableSize.width, lableSize.height); [self.view addSubview:lable];
}
boundingRectWithSize屬性:限定文本在固定范圍內進行顯示
options屬性:
NSStringDrawingTruncatesLastVisibleLine:
如果文本內容超出指定的矩形限制,文本將被截去並在最后一個字符后加上省略號。如果沒有指定NSStringDrawingUsesLineFragmentOrigin選項,則該選項被忽略
NSStringDrawingUsesLineFragmentOrigin:
繪制文本時使用 line fragement origin 而不是 baseline origin
NSStringDrawingUsesFontLeading:
計算行高時使用行距(譯者注:字體大小+行間距=行距)
NSStringDrawingUsesDeviceMetrics:
計算布局時使用圖元字形(而不是印刷字體)
attributes屬性:字體屬性,見NSAtrributedString.h文件
context屬性:文本上下文。可調整字間距以及縮放等。最終,該對象包含的信息將用於文本繪制。該參數可為nil