This is a better performance than UILabel
and can be used like a standard UI component.
Also, Easier to use than UILabel
.
Since UIView
is inherited instead of UILabel
, there is little wasteful processing.
It uses the function of TextKit to draw characters.
However, please note that content layout is not done automatically.
If want to automatically fix the height of the content, set usesIntrinsicContentSize
to true
.
Left tab is customizable label. The center tab AttributedLabel So fast. Right tab is UILabel So slow. Fast more than 10 times from 5 times.
- use the UIlabel
- use the AttributedLabel
- Swift 5.0
- iOS 7.0 or later
- tvOS 9.0 or later
Add the following to your Podfile
:
pod "AttributedLabel"
Add the following to your Cartfile
:
github "KyoheiG3/AttributedLabel"
Just add everything in the AttributedLabel.swift
file to your project.
var numberOfLines: Int
- Same as
numberOfLines
ofUILabel
. - Default is
0
.
var contentAlignment: AttributedLabel.ContentAlignment
- Alignment of content.
- Default is
left
.
@IBInspectable var padding: CGFloat
lineFragmentPadding
ofNSTextContainer
.- default is
0
.
var font: UIFont
- Text font.
- Default is system font 17 plain.
var lineBreakMode: NSLineBreakMode
- Same as
lineBreakMode
ofUILabel
. - Default is
ByTruncatingTail
.
@IBInspectable var textColor: UIColor?
- Default is nil (text draws black).
var paragraphStyle: NSParagraphStyle?
- Default is nil.
var shadow: NSShadow?
- Default is nil.
var attributedText: NSAttributedString?
- Default is nil.
@IBInspectable var text: String?
- Default is nil.
var usesIntrinsicContentSize: Bool
- If need to use intrinsicContentSize set true.
- Should call invalidateIntrinsicContentSize when intrinsicContentSize is cached. When text was changed for example.
- Default is
false
.
var preferredMaxLayoutWidth: CGFloat
- Support for constraint-based layout (auto layout)
- If nonzero, this is used when determining intrinsicContentSize for multiline labels
override func sizeThatFits(size: CGSize) -> CGSize
- Same as
sizeThatFits
ofUILabel
.
override func sizeToFit()
- Fit like
UILabel
.
Follow me 🎉
Under the MIT license. See LICENSE file for details.