美文网首页iOS 深度好文
iOS 富文本首行悬挂

iOS 富文本首行悬挂

作者: standlr | 来源:发表于2017-06-02 15:33 被阅读768次

    段落悬挂从网上找了找没有看到特此记录。
    可以通过富文本段落样式NSMutableParagraphStyle的两个属性去处理 首行缩进firstLineHeadIndent 段落缩进headIndent
    不废话了 看代码

    - (NSAttributedString *)getAttributeStringWith:(NSString *)str{
       
       NSDictionary * attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:12]};
       NSMutableAttributedString * mAttr = [[NSMutableAttributedString alloc] initWithString:str attributes:attributes];
       
       NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
       [paragraphStyle setLineSpacing:10];//行间距
       
       [paragraphStyle setFirstLineHeadIndent:-10];
       [paragraphStyle setHeadIndent:10];
       [mAttr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, str.length)];
       return mAttr;
    }
    

    主要是下面两个行代码控制文本悬挂间距,原理不多说了就是字面意思。
    [paragraphStyle setFirstLineHeadIndent:-10]; [paragraphStyle setHeadIndent:10];
    使用方法

    UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(10, 64, CGRectGetWidth(self.view.frame)-20, CGRectGetHeight(self.view.frame))];
    label.numberOfLines = 0;
    NSString * str = @"1.群儿鞭笞学官府,翁怜痴儿傍笑侮。翁出坐曹鞭复呵,贤于群儿能几何?儿曹相鞭以为戏,翁怒鞭人血满地。等为戏剧谁后先我笑谓翁儿更贤。\n2.群儿鞭笞学官府,翁怜痴儿傍笑侮。翁出坐曹鞭复呵,贤于群儿能几何?儿曹相鞭以为戏,翁怒鞭人血满地。等为戏剧谁后先我笑谓翁儿更贤。\n3.群儿鞭笞学官府,翁怜痴儿傍笑侮。翁出坐曹鞭复呵,贤于群儿能几何?儿曹相鞭以为戏,翁怒鞭人血满地。等为戏剧谁后先我笑谓翁儿更贤。";
    label.attributedText = [self getAttributeStringWith:str];
    [self.view addSubview:label];
    

    效果图


    另附 关于文字展示更深层次讲解
    iOS文字展示原理 -源自Objc中国

    相关文章

      网友评论

        本文标题:iOS 富文本首行悬挂

        本文链接:https://www.haomeiwen.com/subject/fprufxtx.html