diff --git a/MVMCoreUI/Atomic/Atoms/Views/ImageViewModel.swift b/MVMCoreUI/Atomic/Atoms/Views/ImageViewModel.swift index 637b074d..57a82052 100644 --- a/MVMCoreUI/Atomic/Atoms/Views/ImageViewModel.swift +++ b/MVMCoreUI/Atomic/Atoms/Views/ImageViewModel.swift @@ -20,6 +20,7 @@ import Foundation public var height: CGFloat? public var contentMode: UIView.ContentMode? public var localBundle: Bundle? + public var cornerRadius: CGFloat? public init(image: String, imageFormat: String? = nil, width: CGFloat? = nil, height: CGFloat? = nil) { self.image = image @@ -38,5 +39,6 @@ import Foundation case width case height case contentMode + case cornerRadius } } diff --git a/MVMCoreUI/Atomic/Atoms/Views/LoadImageView.swift b/MVMCoreUI/Atomic/Atoms/Views/LoadImageView.swift index baa63ee8..4357537c 100644 --- a/MVMCoreUI/Atomic/Atoms/Views/LoadImageView.swift +++ b/MVMCoreUI/Atomic/Atoms/Views/LoadImageView.swift @@ -247,6 +247,11 @@ import UIKit if let contentMode = imageModel.contentMode { imageView.contentMode = contentMode } + + if let cornerRadius = imageModel.cornerRadius { + imageView.clipsToBounds = true + imageView.layer.cornerRadius = cornerRadius + } } // MARK: - load functions diff --git a/MVMCoreUI/Atomic/Molecules/OtherContainers/BGImageMolecule.swift b/MVMCoreUI/Atomic/Molecules/OtherContainers/BGImageMolecule.swift index 1c39975e..e7d354ea 100644 --- a/MVMCoreUI/Atomic/Molecules/OtherContainers/BGImageMolecule.swift +++ b/MVMCoreUI/Atomic/Molecules/OtherContainers/BGImageMolecule.swift @@ -19,7 +19,15 @@ open class BGImageMolecule: MoleculeContainer { } open override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) { - image.setOptional(with: (model as? BGImageMoleculeModel)?.image, delegateObject, additionalData) - super.set(with: model, delegateObject, additionalData) + guard let castModel = model as? BGImageMoleculeModel else { + super.set(with: model, delegateObject, additionalData) + return + } + image.setOptional(with: castModel.image, delegateObject, additionalData) + super.set(with: castModel, delegateObject, additionalData) + if let cornerRadius = castModel.cornerRadius { + layer.cornerRadius = cornerRadius + clipsToBounds = true + } } } diff --git a/MVMCoreUI/Atomic/Molecules/OtherContainers/BGImageMoleculeModel.swift b/MVMCoreUI/Atomic/Molecules/OtherContainers/BGImageMoleculeModel.swift index 83b5931d..f0200455 100644 --- a/MVMCoreUI/Atomic/Molecules/OtherContainers/BGImageMoleculeModel.swift +++ b/MVMCoreUI/Atomic/Molecules/OtherContainers/BGImageMoleculeModel.swift @@ -13,6 +13,7 @@ open class BGImageMoleculeModel: MoleculeContainerModel { return "bgImageContainer" } public var image: ImageViewModel + public var cornerRadius: CGFloat? open override func setDefaults() { if useHorizontalMargins == nil { @@ -31,6 +32,7 @@ open class BGImageMoleculeModel: MoleculeContainerModel { private enum CodingKeys: String, CodingKey { case image + case cornerRadius } public init(_ image: ImageViewModel, molecule: MoleculeModelProtocol) { @@ -41,6 +43,7 @@ open class BGImageMoleculeModel: MoleculeContainerModel { required public init(from decoder: Decoder) throws { let typeContainer = try decoder.container(keyedBy: CodingKeys.self) image = try typeContainer.decode(ImageViewModel.self, forKey:.image) + cornerRadius = try typeContainer.decodeIfPresent(CGFloat.self, forKey: .cornerRadius) try super.init(from: decoder) } @@ -48,5 +51,6 @@ open class BGImageMoleculeModel: MoleculeContainerModel { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(image, forKey: .image) + try container.encodeIfPresent(cornerRadius, forKey: .cornerRadius) } }