iOS 文字数で縦幅が変化するラベルを持つビューを作るカテゴリ
よく使う機能なのでカテゴリ化して作りました。
最後ceilしてるのはこちらを参考にさせていただきました。
引数のtextはNSStringとNSAttributedStringに対応してます。
※デカすぎるものを作ると落ちるので注意して下さい。
使うときはこういう感じで。
NSString *str = @"sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss"; NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:@"SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"]; [attrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:26.0] range:NSMakeRange(24, 40)]; UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(0, 20, 320, 0) text:str padding:5 maxHeight:1000 templateLabel:nil]; view1.backgroundColor = [UIColor greenColor]; [self.view addSubview:view1]; UIView *view2 = [[UIView alloc]initWithFrame:CGRectMake(0, 20 + view1.frame.size.height + 50, 320, 0) text:attrStr padding:5 maxHeight:1000 templateLabel:nil]; view2.backgroundColor = [UIColor purpleColor]; [self.view addSubview:view2];
結構便利です。