SJAttributesFactory
SJAttributesFactory copied to clipboard
Simplify operation NSAttributedString, make writing easier. Attributes String Editing Factory. iOS 富文本编辑, 让代码更清晰. 文本编辑, 高度计算, 正则匹配等待... 简便操作, 让你爽到爆!
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
- Email: [email protected]
- QQ: 1779609779
- QQGroup: 719616775