53 lines
1.7 KiB
Swift
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 }
|
|
}
|
|
|
|
//Configurations to set within the UIControl
|
|
extension ModelHandlerable where Self: UIView {
|
|
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
|
|
}
|
|
}
|
|
}
|