Skip to content
An elegant way to deal with attributed string in swift.
Swift Ruby Objective-C
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
CuteAttribute.xcodeproj
CuteAttribute
CuteAttributeTests
Example
Images
.gitignore
.swift-version
.swiftlint.yml
.travis.yml
CNAME
CuteAttribute.podspec
LICENSE
README.md

README.md

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

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
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 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

  • Documented.
  • Example.
  • Test.
  • More convenience.

Thanks

Typeset : Deal with AttributedString efficiently in Objective-C.

LICENCE

Under MIT License

You can’t perform that action at this time.