CuteAttribute

CuteAttribute === Build Status Carthage compatible pod version GitHub license

An elegant way to deal with attributed string in swift. It’s convenient to create attributed string by .cute, whatever from String, NSString, NSAttributedString or NSMutableAttributedString. It’s so amazing that almost all methods support chaining. I create this project just because I met Typeset serveral days ago. But I found it’s so hard to use by swift. So I made this.

Support

Swift 3.0 & iOS 8+

Installation

Swift Package Manager

import CuteAttribute

CocoaPods

pod 'CuteAttribute'
pod install
import CuteAttribute

Carthage

github "qiuncheng/CuteAttribute"
carthage update --platform ios
import CuteAttribute

Manually

Usage

Comparison

attribute name | result | NSAttributedString | CuteAttribute — | — | — | — color | | NSMutableAttributedString(string: “hello world”, attributes: [.foregroundColor: UIColor.red]) | “hello world”.cute.matchAll().color(.red) baselineOffset | | NSMutableAttributedString(string: “hello world”, attributes: [.baselineOffset: 10]) | “hello world”.cute.matchAll().baseline(10) underline | | NSMutableAttributedString(string: “hello world”, attributes: [.underlineColor: UIColor.red, .underlineStyle: NSUnderlineStyle.styleSingle.rawValue]) | “hello world”.cute.matchAll().underline(.styleSingle).underlineColor(.red) font | | NSMutableAttributedString(string: “hello world”, attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 20)]) | “hello world”.cute.matchAll().font(UIFont.systemFont(ofSize: 20)) strikethrough | | NSMutableAttributedString(string: “hello world”, attributes: [.strikethroughStyle: NSUnderlineStyle.styleSingle.rawValue, .strikethroughColor: UIColor.red]) | “hello world”.cute.matchAll().strikeThrough(.styleSingle).strokeColor(.red) link | | NSMutableAttributedString(string: “hello world”, attributes: [.link: “https://blog.vsccw.com”]) | “hello world”.cute.matchAll().link(“https://blog.vsccw.com”) ligature | | NSMutableAttributedString(string: “hello world”, attributes: [.ligature: 1]) | “hello world”.cute.matchAll().ligature(1) kern | | NSMutableAttributedString(string: “hello world”, attributes: [.kern: 10]) | “hello world”.cute.matchAll().kern(10) stroke | | NSMutableAttributedString(string: “hello world”, attributes: [.strokeColor: UIColor.red, .strokeWidth: 10]) | “hello world”.cute.matchAll().strokeColor(.red).strokeWidth(10) shadow | let shadow = NSShadow(); shadow.shadowColor = UIColor.red; shadow.shadowOffset = CGSize(width: 4, height: 4); shadow.shadowBlurRadius = 10; | NSMutableAttributedString(string: “hello world”, attributes: [.shadow: shadow]) | “hello world”.cute.matchAll().shadow(shadow) textEffect | no image | “hello world”.cute.matchAll().textEffect(“NSTextEffectLetterpressStyle”) | “hello world”.cute.matchAll().textEffect(“NSTextEffectLetterpressStyle”) obliqueness | | NSMutableAttributedString(string: “hello world”, attributes: [.obliqueness: 10]) | “hello world”.cute.matchAll().obliqueness(10) expansion | | NSMutableAttributedString(string: “hello world”, attributes: [.expansion: 10]) | “hello world”.cute.matchAll().expansion(10) textAttachment | let attachment = NSTextAttachment(); attachment.image = UIImage(named: "hello.png"); | NSMutableAttributedString(string: “hello world”, attributes: [.attachment: attachment]) | “hello world”.cute.matchAll().textAttachment(attachment)

TODO

Thanks

Typeset : Deal with AttributedString efficiently in Objective-C.

LICENCE

Under MIT License