Skip to content

An elegant way to build NSAttributedString just like SwiftUI.

License

Notifications You must be signed in to change notification settings

octree/AttributedText

Repository files navigation

AttributedText

An elegant way to build NSAttributedString like SwiftUI.

Power by swift Result Builder

Usage

let list = ["hello", "world"]

let attributedText: NSAttributedString = .Builder {
  "@resultBuilder".bold.italic.foreground(color: .purple)
  if #available(iOS 14, *) {
    "Wow".lineHeight(20)
  }
}
.build()

Attachment and Loops

let list = ["谈笑风生", "香港记者", "人生经验", "无可奉告", "身经百战", "亦可赛艇", "图样图森破", "另请高明"]
textView.attributedText = .Builder {
  Group {
    attachment
    " Result builder is awesome\n".bold
        .fontSize(24)
        .foreground(color: .label)
  }
  .lineSpacing(8)

  for element in list {
    element.font(.systemFont(ofSize: 16))
        .foreground(color: .random)
        .lineSpacing(4)
  }
}
.build()

attachment

Installation

Swift Package Manager

License

AttributedText is available under the MIT license. See the LICENSE file for more info.

About

An elegant way to build NSAttributedString just like SwiftUI.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages