UILabel 行間を調整する

広告

UILabel を使って複数行の文字列を表示する際の行間を調整する場合は NSAttributedString を使って一行の高さを指定して調整します。

NSMutableParagraphStyle のインスタンスに setMinimumLineHeight と setMaximumLineHeight で行の高さを指定し、それを元に NSAttributedString を生成して UILabel に指定します。

行の高さ16 サンプル

- (void)sampleUILabelSetAttributedTextLineHeight16
{
    CGFloat lineHeight = 16.0 ;
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init] ;
    [paragraphStyle setMinimumLineHeight:lineHeight] ;
    [paragraphStyle setMaximumLineHeight:lineHeight] ;

    NSString *string = @"Sample Specific Line Height Text 16.0 Sample Specific Line Height Text 16.0 Sample Specific Line Height Text 16.0" ;
    NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:paragraphStyle,NSParagraphStyleAttributeName,nil] ;
    NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:string attributes:attributes] ;

    UILabel *label = [[UILabel alloc] initWithFrame:viewFrame] ;
    [label setNumberOfLines:3] ;
    [label setAttributedText:attributedText] ;
    [self.view addSubview:label] ;
}

行の高さ16 表示結果

UILabel_3_358

行の高さ24 サンプル

- (void)sampleUILabelSetAttributedTextLineHeight24
{
    CGFloat lineHeight = 24.0 ;
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init] ;
    [paragraphStyle setMinimumLineHeight:lineHeight] ;
    [paragraphStyle setMaximumLineHeight:lineHeight] ;

    NSString *string = @"Sample Specific Line Height Text 24.0 Sample Specific Line Height Text 24.0 Sample Specific Line Height Text 24.0" ;
    NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:paragraphStyle,NSParagraphStyleAttributeName,nil] ;
    NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:string attributes:attributes] ;

    UILabel *label = [[UILabel alloc] initWithFrame:viewFrame] ;
    [label setNumberOfLines:3] ;
    [label setAttributedText:attributedText] ;
    [self.view addSubview:label] ;
}

行の高さ24 表示結果

UILabel_3_578

広告

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>