Texstyle allows you to format attributed strings easily.
- Applying attributes with strong typing and autocompletion
- Cache for attributes
- Substyles
- Convenient extensions for
String
andUIButton
- iOS 9.0+ / tvOS 9.0+
- Xcode 10.0+
Here is a basic example of Texstyle using:
let text = Text(value: "Hello, World 🌍", style: .title1)
text.add(.heading1, for: "World")
titleLabel.attributedText = text.attributed
The result:
Let's start with text styles. There is a TextStyle
class for configuring different style parameters like font, color, kerning etc. We prefer to use TextStyle
extension for app specific styles:
extension TextStyle {
static let title1: TextStyle = {
let style = TextStyle()
style.font = .systemFont(ofSize: 32, weight: .regular)
return style
}()
static let heading1: TextStyle = {
let style = TextStyle()
style.font = .systemFont(ofSize: 28, weight: .semibold)
style.color = .purple
return style
}()
}
It allows you to reuse the styles across the app.
Next, create a Text
instance. It contains string value and style:
let text = Text(value: "Hello, World 🌍", style: .title1)
Text also supports independent styles for each UIControl.State
. For example, if you want to use a different style for button highlight state, you should initialize text like:
let text = Text(value: " Sign in with Apple", styles: [.normal: .heading1,
.highlighted: .heading2])
To create an attributed string, just use:
//By default for normal state
text.attributed
//For needed state
text.attributed(for: .highlighted)
All attributed strings are cached by default. It's useful in reusable elements like UICollectionViewCell
or UITableViewCell
.
There are custom operators for texts and strings:
let text1 = Text(value: "Ros", style: .title1)
let text2 = text1 + "ber"
let text3 = Text(value: "ry", style: .title1)
let text4 = text2 + text3
text4.value // "Rosberry"
There are convenience APIs for text creation and applying:
//String to text
"Settings".text(with: .heading1)
//UIButton
button.setText(text)
Check TexstyleExample project for more examples.
Create a Cartfile
that lists the framework and run carthage update
. Follow the instructions to add the framework to your project.
github "rosberry/Texstyle"
Drag Sources
folder from last release into your project.
This project is owned and maintained by Rosberry. We build mobile apps for users worldwide 🌏.
Check out our open source projects, read our blog or give us a high-five on 🐦 @rosberryapps.
Texstyle is available under the MIT license. See the LICENSE file for more info.