Merge branch 'release/11_4_0' into 'develop'

fixed issue with attributedText setting not working correctly

See merge request BPHV_MIPS/vds_ios!177
This commit is contained in:
Bruce, Matt R 2024-03-14 23:59:16 +00:00
commit 4abcc313cf

View File

@ -108,14 +108,14 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
// MARK: - Public Properties
//--------------------------------------------------
/// Key of whether or not updateView() is called in setNeedsUpdate()
open var shouldUpdateView: Bool = true
open var shouldUpdateView: Bool = true
/// Will determine if a scaled font should be used for the font.
open var useScaledFont: Bool = false { didSet { setNeedsUpdate() }}
open var surface: Surface = .light { didSet { setNeedsUpdate() }}
/// Array of LabelAttributeModel objects used in rendering the text.
/// Array of LabelAttributeModel objects used in rendering the text.
open var attributes: [any LabelAttributeModel]? { didSet { setNeedsUpdate() }}
/// TextStyle used on the this label.
@ -135,20 +135,18 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
/// Text that will be used in the label.
private var _text: String!
override open var text: String! {
get { _text }
set {
didSet {
_text = text
textSetMode = .text
_text = newValue
styleText(newValue)
setNeedsUpdate()
}
}
///AttributedText that will be used in the label.
override open var attributedText: NSAttributedString? {
get { super.attributedText }
set {
didSet {
textSetMode = .attributedText
styleAttributedText(newValue)
setNeedsUpdate()
}
}
@ -288,7 +286,7 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
private func styleText(_ newValue: String!) {
defer { invalidateIntrinsicContentSize() }
guard let newValue else {
guard let newValue, !newValue.isEmpty else {
// We don't need to use attributed text
super.attributedText = nil
super.text = newValue
@ -306,14 +304,14 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
lineBreakMode: lineBreakMode)
applyAttributes(mutableText)
// Set attributed text to match typography
super.attributedText = mutableText
}
private func styleAttributedText(_ newValue: NSAttributedString?) {
defer { invalidateIntrinsicContentSize() }
guard let newValue = newValue else {
guard let newValue, !newValue.string.isEmpty else {
// We don't need any additional styling
super.attributedText = newValue
return
@ -322,7 +320,7 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
let mutableText = NSMutableAttributedString(attributedString: newValue)
applyAttributes(mutableText)
// Modify attributed text to match typography
super.attributedText = mutableText
}
@ -424,3 +422,5 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
}
}
}