iOS之UILabel的自動換行,iosuilabel
思路:
實現:
UILabel *label = [[UILabel alloc] init];
label.text = @"你好,這是UILabel的自動換行測試內容,主要實現多行資料的自動換行,自適應不同行數的資料";
NSDictionary *attribute = @{NSFontAttributeName: [UIFont systemFontOfSize:14]};
CGSize labelSize = [label.text boundingRectWithSize:CGSizeMake(200, 5000) options: NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attribute context:nil].size;
//200為UILabel的寬度,5000是預設的一個高度,表示在這個範圍內
//注意:之前使用了NSString類的sizeWithFont: constrainedToSize: lineBreakMode:方法,但是該方法已經被iOS7 Deprecated了,而iOS7新出了一個boudingRectWithSize: options: attributes: context:方法來代替。
label.frame = CGRectMake(label.frame.origin.x, label.frame.origin.y, label.frame.size.width, labelSize.height);
//保持原來Label的位置和寬度,只是改變高度。
label.numberOfLines = 0;//表示label可以多行顯示
label.textColor = UICOLOR_FROM_RGB(100, 100, 100, 1);
label.font = [UIFont systemFontOfSize:14];
[self.view addSubview:label];