vds_ios/VDS/Protocols/Accessable.swift
Matt Bruce b1324444f8 refactored out speicific atomic code
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
2022-07-26 11:08:42 -05:00

53 lines
1.7 KiB
Swift

//
// Accessable.swift
// VDS
//
// Created by Matt Bruce on 7/26/22.
//
import Foundation
import UIKit
public protocol Accessable {
var accessibilityHintEnabled: String? { get set }
var accessibilityHintDisabled: String? { get set }
var accessibilityValueEnabled: String? { get set }
var accessibilityValueDisabled: String? { get set }
var accessibilityLabelEnabled: String? { get set }
var accessibilityLabelDisabled: String? { get set }
}
//Helpers to set within the UIControl
extension Modelable where Self: UIControl {
private var accessableModel: Accessable? {
guard let model = self.model as? Accessable else {
return nil
}
return model
}
public func setAccessibilityHint(_ enabled: Bool = true) {
if let value = accessableModel?.accessibilityHintEnabled, enabled {
accessibilityHint = value
} else if let value = accessableModel?.accessibilityHintDisabled, !enabled {
accessibilityHint = value
}
}
public func setAccessibilityValue(_ enabled: Bool = true) {
if let value = accessableModel?.accessibilityValueEnabled, enabled {
accessibilityValue = value
} else if let value = accessableModel?.accessibilityValueDisabled, !enabled {
accessibilityValue = value
}
}
public func setAccessibilityLabel(_ enabled: Bool = true) {
if let value = accessableModel?.accessibilityLabelEnabled, enabled {
accessibilityLabel = value
} else if let value = accessableModel?.accessibilityLabelDisabled, !enabled {
accessibilityLabel = value
}
}
}