CuteAttribute
CuteAttribute copied to clipboard
An elegant way to deal with attributed string in swift.
CuteAttribute
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
- add it to your Xcode project.
- Import the header file in your project.
import CuteAttribute
CocoaPods
- add it to your Podfile.
pod 'CuteAttribute'
- Then run the command.
pod install
- Import the header file in your project.
import CuteAttribute
Carthage
- Add CuteAttribute to your Cartfile.
github "qiuncheng/CuteAttribute"
- Run the command
carthage update --platform ios
-
Follow the rest of the standard Carthage installation instructions to add CuteAttribute to your project.
-
Import the header file in your project.
import CuteAttribute
Manually
- Download the full file.
- Drag the CuteAttribute folder to your project.
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 | ![]() |
"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
- [x] Documented.
- [x] Example.
- [ ] Test.
- [ ] More convenience.
Thanks
Typeset : Deal with AttributedString efficiently in Objective-C
.
LICENCE
Under MIT License