// // LabelSystemImageLabelAttribute.swift // VDS // // Created by Matt Bruce on 10/4/22. // import Foundation import UIKit public struct ImageLabelAttribute: AttachmentLabelAttributeModel { public enum Error: Swift.Error { case bundleNotFound case imageNotFound(String) } public var id = UUID() public var location: Int public var length: Int public var imageName: String public var frame: CGRect public var tintColor: UIColor public static func == (lhs: ImageLabelAttribute, rhs: ImageLabelAttribute) -> Bool { lhs.isEqual(rhs) } public func isEqual(_ equatable: ImageLabelAttribute) -> Bool { return id == equatable.id && range == equatable.range && imageName == equatable.imageName } public func getAttachment() throws -> NSTextAttachment { guard let bundle = Bundle(identifier: "com.vzw.vds") else { throw Error.bundleNotFound } guard let image = UIImage(named: imageName, in: bundle, with: nil) else { throw Error.imageNotFound(imageName) } let attachment = NSTextAttachment() attachment.image = image.withTintColor(tintColor) attachment.bounds = frame return attachment } }