// // ViewProtocol.swift // VDS // // Created by Matt Bruce on 7/22/22. // import Foundation import UIKit public protocol ViewProtocol { // Can setup ui here. Should be called in the initialization functions. func setup() func updateAccessibilityLabel() } extension ViewProtocol where Self: UIView { public func removeFromSuperview(_ view: UIView){ if view.superview != nil { view.removeFromSuperview() setNeedsDisplay() } } public func combineAccessibilityLabel(for views: [UIView]) -> String? { let labels = views.map({($0.accessibilityLabel?.isEmpty ?? true) ? nil : $0.accessibilityLabel}).compactMap({$0}) return labels.joined(separator: ", ") } public func setAccessibilityLabel(for views: [UIView]) { accessibilityLabel = combineAccessibilityLabel(for: views) } }