Skip to content
Easy to use, fast, and higher performance than UILabel.
Branch: master
Clone or download
Latest commit 0242b11 Sep 18, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
AttributedLabel Convert to Swift 4.2. Sep 15, 2018
AttributedLabelExample Update podspec Sep 18, 2018
.gitignore Initial commit Jul 16, 2015


Build Status Carthage compatible Version License Platform


Higher performance than UILabel.

Appetize's Demo



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.

Customization is easy.


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

AttributedLabel !


  • Swift 4.2
  • iOS 7.0 or later
  • tvOS 9.0 or later

How to Install AttributedLabel

iOS 8+, tvOS


Add the following to your Podfile:

pod "AttributedLabel"


Add the following to your Cartfile:

github "KyoheiG3/AttributedLabel"

iOS 7

Just add everything in the AttributedLabel.swift file to your project.



var numberOfLines: Int
  • Same as numberOfLines of UILabel.
  • Default is 0.
var contentAlignment: AttributedLabel.ContentAlignment
  • Alignment of content.
  • Default is left.
@IBInspectable var padding: CGFloat
  • lineFragmentPadding of NSTextContainer.
  • default is 0.
var font: UIFont
  • Text font.
  • Default is system font 17 plain.
var lineBreakMode: NSLineBreakMode
  • Same as lineBreakMode of UILabel.
  • 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 of UILabel.
override func sizeToFit()
  • Fit like UILabel.


Kyohei Ito

Follow me 🎉


Under the MIT license. See LICENSE file for details.

You can’t perform that action at this time.