AttributedLabel
比UILabel性能更高。
Appetize的示例
概述
它比UILabel性能更好,可以像标准UI组件一样使用。而且比UILabel更易于使用。
由于继承自UIView而不是UILabel,因此几乎没有浪费的处理。它使用TextKit的功能绘制字符。
请注意,内容布局不是自动完成的。如果要自动固定内容的高度,请将usesIntrinsicContentSize设置为true。
自定义非常简单。
左侧标签页是可以自定义的标签。中间的标签页为AttributedLabel,响应速度极快。右侧标签页为UILabel,响应速度较慢。速度是原来的10倍以上,比5倍还要快。
- 使用UIlabel
- 使用AttributedLabel
需求
- Swift 5.0
- iOS 7.0及以上
- tvOS 9.0及以上
如何安装AttributedLabel
iOS 8+, tvOS
CocoaPods
将以下内容添加到您的 Podfile
pod "AttributedLabel"Carthage
将以下内容添加到您的 Cartfile
github "KyoheiG3/AttributedLabel"iOS 7
只需将AttributedLabel.swift文件中的所有内容添加到您的项目中。
使用方法
变量
var numberOfLines: Int- 与
UILabel中的numberOfLines相同。 - 默认为
0。
var contentAlignment: AttributedLabel.ContentAlignment- 内容的对齐方式。
- 默认为
left。
@IBInspectable var padding: CGFloatNSTextContainer中lineFragmentPadding的值。- 默认为
0。
var font: UIFont- 文本字体。
- 默认为系统字体17号平实字体。
var lineBreakMode: NSLineBreakMode- 与
UILabel中的lineBreakMode相同。 - 默认为
ByTruncatingTail。
@IBInspectable var textColor: UIColor?- 默认为nil(文本以黑色绘制)。
var paragraphStyle: NSParagraphStyle?- 默认为nil。
var shadow: NSShadow?- 默认为nil。
var attributedText: NSAttributedString?- 默认为nil。
@IBInspectable var text: String?- 默认为nil。
var usesIntrinsicContentSize: Bool- 如果需要使用intrinsicContentSize,则设置为true。
- 当intrinsicContentSize被缓存时,应调用invalidateIntrinsicContentSize。例如,当文本更改时。
- 默认为
false。
var preferredMaxLayoutWidth: CGFloat- 支持基于约束的布局(自动布局)。
- 如果非零,则在确定多行标签的intrinsicContentSize时使用。
函数
override func sizeThatFits(size: CGSize) -> CGSize- 与
UILabel中的sizeThatFits相同。
override func sizeToFit()- 类似
UILabel的适配。
作者
Kyohei Ito
关注我
许可协议
遵循MIT许可协议。有关详细信息,请参阅LICENSE文件。




