Skip to content

Simplify operation NSAttributedString, make writing easier. Attributes String Editing Factory. iOS 富文本编辑, 让代码更清晰. 文本编辑, 高度计算, 正则匹配等待... 简便操作, 让你爽到爆!

License

Notifications You must be signed in to change notification settings

changsanjiang/SJAttributesFactory

Repository files navigation

SJAttributesFactory

Objc

pod 'SJAttributesFactory'

Swift

pod 'SJAttributesStringMaker'

use in swift:

    let text = NSAttributedString.sj.makeText { (make) in
        make.font(.boldSystemFont(ofSize: 20)).textColor(.black).lineSpacing(8)
        make.append("Hello world!")
    }
    
    // It's equivalent to below code.
    
    let paragraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
    paragraphStyle.lineSpacing = 8
    let attributes = [NSAttributedString.Key.font:UIFont.boldSystemFont(ofSize: 20),
                      NSAttributedString.Key.foregroundColor:UIColor.black,
                      NSAttributedString.Key.paragraphStyle:paragraphStyle]
    let text1 = NSAttributedString.init(string: "Hello world!", attributes: attributes)

use in Objc:

    NSAttributedString *text = [NSAttributedString sj_UIKitText:^(id<SJUIKitTextMakerProtocol>  _Nonnull make) {
    make.font([UIFont boldSystemFontOfSize:20]).textColor(UIColor.blackColor).lineSpacing(8);
    
    make.append(@":Image -");
    make.appendImage(^(id<SJUTImageAttachment>  _Nonnull make) {
        make.image = [UIImage imageNamed:@"sample2"];
        make.bounds = CGRectMake(0, 0, 30, 30);
    });
    
    make.append(@"\n");
    make.append(@":UnderLine").underLine(^(id<SJUTDecoration>  _Nonnull make) {
        make.style = NSUnderlineStyleSingle;
        make.color = UIColor.greenColor;
    });
    
    make.append(@"\n");
    make.append(@":Strikethrough").strikethrough(^(id<SJUTDecoration>  _Nonnull make) {
        make.style = NSUnderlineStyleSingle;
        make.color = UIColor.greenColor;
    });
    
    make.append(@"\n");
    make.append(@":BackgroundColor").backgroundColor(UIColor.greenColor);
    
    make.append(@"\n");
    make.append(@":Kern").kern(6);
    
    make.append(@"\n");
    make.append(@":Shadow").shadow(^(NSShadow * _Nonnull make) {
        make.shadowColor = [UIColor redColor];
        make.shadowOffset = CGSizeMake(0, 1);
        make.shadowBlurRadius = 5;
    });
    
    make.append(@"\n");
    make.append(@":Stroke").stroke(^(id<SJUTStroke>  _Nonnull make) {
        make.color = [UIColor greenColor];
        make.width = 1;
    });
    
    make.append(@"\n");
    make.append(@"oOo").font([UIFont boldSystemFontOfSize:25]).alignment(NSTextAlignmentCenter);
    
    make.append(@"\n");
    make.append(@"Regular Expression").backgroundColor([UIColor greenColor]);
    make.regex(@"Regular").update(^(id<SJUTAttributesProtocol>  _Nonnull make) {
        make.font([UIFont boldSystemFontOfSize:25]).textColor(UIColor.purpleColor);
    });
    
    make.regex(@"ss").replaceWithString(@"SS").backgroundColor([UIColor greenColor]);
    make.regex(@"on").replaceWithText(^(id<SJUIKitTextMakerProtocol>  _Nonnull make) {
        make.append(@"ON😆").textColor([UIColor redColor]).backgroundColor([UIColor greenColor]).font([UIFont boldSystemFontOfSize:30]);
    });
 }];

Contact

About

Simplify operation NSAttributedString, make writing easier. Attributes String Editing Factory. iOS 富文本编辑, 让代码更清晰. 文本编辑, 高度计算, 正则匹配等待... 简便操作, 让你爽到爆!

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published