iOS 中Label在自適應(yīng)寬高的同時(shí)設(shè)置文字行距行距

直接封裝成類別,只要是UILabel都可以實(shí)現(xiàn)在自適應(yīng)寬高的同時(shí)調(diào)整文字的行高。具體的實(shí)現(xiàn)代碼如下:

  • 創(chuàng)建類別,將其命名為Adaptive
  • .h文件的方法接口
#import <UIKit/UIKit.h>

@interface UILabel (Adaptive)
/**
 *  自適應(yīng)寬高同時(shí)調(diào)整行距
 *
 *  @param text label.text
 *  @param font label.font
 *  @param size label的最大尺寸
 *
 *  @return 自適應(yīng)后的到的size
 */
- (CGSize )szieAdaptiveWithText:(NSString *)text andTextFont:(UIFont *)font andTextMaxSzie:(CGSize )size;
@end
  • .m文件中方法的實(shí)現(xiàn)
#import "UILabel+Adaptive.h"

@implementation UILabel (Adaptive)

- (CGSize )szieAdaptiveWithText:(NSString *)text andTextFont:(UIFont *)font andTextMaxSzie:(CGSize )size{
    
    self.text = text;
    self.font = font;

//可變的屬性文本
    NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc]initWithString:self.text];

//設(shè)置段落樣式 使用NSMutableParagraphStyle類
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

    paragraphStyle.alignment = NSTextAlignmentLeft;//文本對(duì)齊方式
    paragraphStyle.maximumLineHeight = 60;  //最大的行高
    paragraphStyle.lineSpacing = 8;  //行自定義行高度
    
//  給可變的屬性字符串 添加段落格式
    [attributedText addAttribute: NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [self.text length])];

//將帶有段落格式的可變的屬性字符串給label.attributedText
    self.attributedText = attributedText;
  
    self.lineBreakMode = NSLineBreakByTruncatingTail;//label的換行模式
    self.numberOfLines = 0;// 設(shè)置行數(shù),0表示沒(méi)有限制
    
    CGSize maxSzie = size;//設(shè)置label的最大SIZE

    [self sizeToFit];
    CGSize labelSize = [self sizeThatFits:maxSzie];//最終自適應(yīng)得到的label的尺寸。


    return labelSize;
}
注: 
這里的實(shí)現(xiàn),行距設(shè)置是固定的值,如果想不同的label設(shè)置不同的行距的話,可以在方法中在添加一個(gè)行距的參數(shù)就OK了。
這里只是對(duì)行距進(jìn)行設(shè)置,沒(méi)有設(shè)置其他的段落屬性,有興趣的童鞋可以試試其他的屬性。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、第一步 直接封裝成類別,只要是UILabel都可以實(shí)現(xiàn)在自適應(yīng)寬高的同時(shí)調(diào)整文字的行高。具體的實(shí)現(xiàn)代碼如下: ...
    月上樓閣閱讀 786評(píng)論 0 0
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,881評(píng)論 25 709
  • 如果不是陰冷的夜晚, 被窩不會(huì)冷冰, 輾轉(zhuǎn)換不來(lái)溫度和暖, 一點(diǎn)點(diǎn)盼著回緩。 焙朗配茶蛋,魚(yú)香肉絲飯, 香蕉酸奶是...
    眾知閱讀 210評(píng)論 6 0
  • 我想著能有個(gè)美好的開(kāi)始,有個(gè)美好的結(jié)束。但是磨合期真的要付出很多,已經(jīng)學(xué)會(huì)不在乎的在乎,還是會(huì)有小失落,感覺(jué)還是走...
    柯九斯閱讀 224評(píng)論 0 0

友情鏈接更多精彩內(nèi)容