Merge branch 'bugfix/atomic_vds_label' into 'release/11_4_0'
refactored atomic label ### Summary There were some manual settings happening into the Atomic Label with font and textColor. These changes were pushed down into VDS.Label to handle generically and there was some code that needed to be deleted due to this change. ### JIRA Ticket https://onejira.verizon.com/browse/ONEAPP-4349 Co-authored-by: Matt Bruce <matt.bruce@verizon.com> See merge request https://gitlab.verizon.com/BPHV_MIPS/mvm_core_ui/-/merge_requests/1066
This commit is contained in:
commit
f53847372a
@ -46,14 +46,6 @@ public typealias ActionBlock = () -> ()
|
||||
return !text.isEmpty || !attributedText.string.isEmpty
|
||||
}
|
||||
|
||||
open override var textColor: UIColor! {
|
||||
didSet {
|
||||
if let textColor {
|
||||
textColorConfiguration = SurfaceColorConfiguration(textColor, textColor).eraseToAnyColorable()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------
|
||||
// MARK: - Convenience Setter For objective-C
|
||||
//------------------------------------------------------
|
||||
@ -190,29 +182,7 @@ public typealias ActionBlock = () -> ()
|
||||
}
|
||||
|
||||
@objc public func resetAttributeStyle() {
|
||||
/*
|
||||
* This is to address a reuse issue with iOS 13 and up.
|
||||
* Even if you set text & attributedText to nil, the moment you set text with a value,
|
||||
* attributedText will hold a dirty value from a previously reused cell even if reset() is
|
||||
* appropriately called.
|
||||
* Only other reference found of issue: https://www.thetopsites.net/article/58142205.shtml
|
||||
*/
|
||||
if let text = text, !text.isEmpty {
|
||||
|
||||
//create the primary string
|
||||
let mutableText = NSMutableAttributedString.mutableText(for: text,
|
||||
textStyle: textStyle,
|
||||
useScaledFont: useScaledFont,
|
||||
textColor: textColorConfiguration.getColor(self),
|
||||
alignment: textAlignment,
|
||||
lineBreakMode: lineBreakMode)
|
||||
|
||||
if let attributes = attributes {
|
||||
mutableText.apply(attributes: attributes)
|
||||
}
|
||||
|
||||
self.attributedText = mutableText
|
||||
}
|
||||
setNeedsUpdate()
|
||||
}
|
||||
|
||||
public func viewModelDidUpdate() {
|
||||
@ -229,7 +199,6 @@ public typealias ActionBlock = () -> ()
|
||||
}
|
||||
|
||||
if let style = viewModel.fontStyle?.vdsTextStyle() {
|
||||
font = style.font
|
||||
textStyle = style
|
||||
} else if let fontName = viewModel.fontName {
|
||||
// there is a TextStyle.defaultStyle
|
||||
@ -237,9 +206,8 @@ public typealias ActionBlock = () -> ()
|
||||
if let fontSize {
|
||||
standardFontSize = fontSize
|
||||
}
|
||||
if let customStyle = style(for: fontName, pointSize: fontSize ?? standardFontSize), customStyle != textStyle {
|
||||
font = customStyle.font
|
||||
textStyle = customStyle
|
||||
if let newFont = UIFont(name: fontName, size: fontSize ?? standardFontSize) {
|
||||
font = newFont
|
||||
}
|
||||
}
|
||||
|
||||
@ -256,26 +224,6 @@ public typealias ActionBlock = () -> ()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// See if the font that is currently set matches a VDS Font and if so grab the matching TextStyle or create custom TextStyle that
|
||||
/// that the Label will use moving forward.
|
||||
private func checkforFontChange() {
|
||||
guard let customStyle = style(for: font.fontName, pointSize: font.pointSize), customStyle != textStyle
|
||||
else { return }
|
||||
textStyle = customStyle
|
||||
}
|
||||
|
||||
private func style(for fontName: String, pointSize: CGFloat) -> TextStyle? {
|
||||
guard let vdsFont = Font.from(fontName: fontName),
|
||||
let customStyle = TextStyle.style(from: vdsFont, pointSize: pointSize)
|
||||
else { return nil }
|
||||
return customStyle
|
||||
}
|
||||
|
||||
open override func updateView() {
|
||||
checkforFontChange()
|
||||
super.updateView()
|
||||
}
|
||||
|
||||
open override func updateAccessibility() {
|
||||
super.updateAccessibility()
|
||||
|
||||
@ -54,12 +54,3 @@ extension VDS.Font {
|
||||
Self.allCases.filter({$0.fontName == fontName }).first
|
||||
}
|
||||
}
|
||||
|
||||
extension VDS.TextStyle {
|
||||
internal static func style(from font: VDS.Font, pointSize: CGFloat) -> TextStyle? {
|
||||
guard let first = allCases.filter({$0.fontFace == font && $0.pointSize == pointSize}).first else {
|
||||
return TextStyle(rawValue: "Custom-TextStyle", fontFace: font, pointSize: pointSize)
|
||||
}
|
||||
return first
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user