一、根據文本計算size,這裏須要傳入attributeside
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 0, 0)]; label.text = @"12331afaa我是誰的誰"; label.textColor = [UIColor redColor]; label.backgroundColor = [UIColor greenColor]; label.font = [UIFont systemFontOfSize:20]; [self.view addSubview:label]; CGSize size = [label.text sizeWithAttributes:@{NSFontAttributeName:label.font}]; label.frame = CGRectMake(20, 100, size.width, size.height); // width:193.482031 heigth:23.867188
二、富文本計算sizespa
CGSize size = [label.attributedText size]; label.frame = CGRectMake(20, 100, size.width, size.height); // width:193.482031 heigth:23.867188
三、經過UIView的 sizeThatFits3d
// 在單行文本的狀況下,參數size設置多少都無所謂,因此裏傳了CGSizeZero CGSize size = [label sizeThatFits:CGSizeZero]; label.frame = CGRectMake(20, 100, size.width, size.height); // width:193.500000 heigth:24.000000 // 可用此方法計算高度 label.text = @"ABCDEFGHIJKLMN"; label.numberOfLines = 0; label.textAlignment = NSTextAlignmentCenter; CGSize size = [label sizeThatFits:CGSizeMake(15, 0)]; label.frame = CGRectMake(20, 100, size.width, size.height); // width:15.000000 heigth:334.500000