I.はじめに
UITextView コントロールを使用する場合、折りたたみ可能なセルなど、テキストの高さと幅を動的に計算する必要があるシナリオが数多くあります。ここでは、コピーして直接使用できる一般的な計算方法を示します。
2. コード
- (CGFloat)getStringHeight:(NSString *)text{
NSAttributedString *str = [[NSAttributedString alloc] initWithString:text attributes:@{
NSFontAttributeName: [UIFont systemFontOfSize:15]}];
CGSize size = [str boundingRectWithSize:CGSizeMake(180, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil].size;
return size.height + 1; //结果向上取整
}
説明:
NSStringDrawingUsesLineFragmentOrigin: テキスト全体のサイズは、各行で構成される四角形の単位で計算されます。
NSStringDrawingUsesFontLeading: フォントの行間隔を使用して、テキストが占める範囲、つまり各行の下から次の行の下までの距離を計算します。