mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
59 lines
1.7 KiB
Swift
59 lines
1.7 KiB
Swift
import UIKit
|
|
import AsyncDisplayKit
|
|
|
|
public class NavigationTitleNode: ASDisplayNode {
|
|
private let label: ImmediateTextNode
|
|
|
|
private var _text: NSString = ""
|
|
public var text: NSString {
|
|
get {
|
|
return self._text
|
|
}
|
|
set(value) {
|
|
self._text = value
|
|
self.setText(value)
|
|
}
|
|
}
|
|
|
|
public var color: UIColor = UIColor.black {
|
|
didSet {
|
|
self.setText(self._text)
|
|
}
|
|
}
|
|
|
|
public init(text: NSString) {
|
|
self.label = ImmediateTextNode()
|
|
self.label.maximumNumberOfLines = 1
|
|
self.label.truncationType = .end
|
|
self.label.displaysAsynchronously = false
|
|
|
|
super.init()
|
|
|
|
self.addSubnode(self.label)
|
|
|
|
self.setText(text)
|
|
}
|
|
|
|
public required init(coder aDecoder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
private func setText(_ text: NSString) {
|
|
var titleAttributes = [NSAttributedString.Key : AnyObject]()
|
|
titleAttributes[NSAttributedString.Key.font] = UIFont.boldSystemFont(ofSize: 17.0)
|
|
titleAttributes[NSAttributedString.Key.foregroundColor] = self.color
|
|
let titleString = NSAttributedString(string: text as String, attributes: titleAttributes)
|
|
self.label.attributedText = titleString
|
|
self.invalidateCalculatedLayout()
|
|
}
|
|
|
|
public override func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize {
|
|
let _ = self.label.updateLayout(constrainedSize)
|
|
return self.label.calculatedSize
|
|
}
|
|
|
|
public override func layout() {
|
|
self.label.frame = self.bounds
|
|
}
|
|
}
|