而不是计算 UILabel 高度计算文本本身的高度并相应地调整标签。
Objectiv-C
// *** I have created a dynamic label and calculated its height ***
UILabel *lblDynamicHeight = [[UILabel alloc] init];
[lblDynamicHeight setText:@"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum."];
[lblDynamicHeight setFrame:CGRectMake(0, 0, 200, [self textHeight:lblDynamicHeight.text])];
[lblDynamicHeight setFont:[UIFont fontWithName:@"Arial" size:15]];
[self.view addSubview:lblDynamicHeight];
- (CGFloat)textHeight:(NSString *)text
{
CGFloat maxWidth = 200; // set Max width for your control here. (i have used 200)
CGRect rect = [text boundingRectWithSize:CGSizeMake(maxWidth, CGFLOAT_MAX)
options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
attributes:@{NSFontAttributeName:[UIFont fontWithName:@"Arial" size:15]} // Set your label's font here
context:nil];
CGFloat textHeight = rect.size.height;
return textHeight;
}
斯威夫特
func addLabel() {
// *** I have created a dynamic label and calculated its height ***
var lblDynamicHeight: UILabel = UILabel()
lblDynamicHeight.text = "Lorem Ipsum."
lblDynamicHeight.frame = CGRectMake(0, 0, 200, self.textHeight(lblDynamicHeight.text!))
lblDynamicHeight.font = UIFont(name: "Arial", size: 15)
self.view!.addSubview(lblDynamicHeight)
}
func textHeight(text: String) -> CGFloat {
var maxWidth: CGFloat = 200
// set Max width for your control here. (i have used 200)
var rect: CGRect = text.boundingRectWithSize(CGSizeMake(maxWidth, CGFLOAT_MAX), options: ([.UsesLineFragmentOrigin, .UsesFontLeading]), attributes: [NSFontAttributeName: UIFont(name: "Arial", size: 15)], context: nil)
var textHeight: CGFloat = rect.size.height
return textHeight
}
使用此代码。快乐编码:)