// // BGThreeLayerTemplate.swift // JSONCreator // // Created by Matt Bruce on 2/1/23. // Copyright © 2023 Verizon Wireless. All rights reserved. // import Foundation import MVMCoreUI @objcMembers public class BGThreeLayerPageTemplateModel: ThreeLayerPageTemplateModel { public override class var identifier: String { "bgThreeLayer" } public var backgroundImage: ImageViewModel //-------------------------------------------------- // MARK: - Keys //-------------------------------------------------- private enum CodingKeys: String, CodingKey { case backgroundImage } //-------------------------------------------------- // MARK: - Codec //-------------------------------------------------- required public init(from decoder: Decoder) throws { let typeContainer = try decoder.container(keyedBy: CodingKeys.self) backgroundImage = try typeContainer.decode(ImageViewModel.self, forKey: .backgroundImage) try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) try container.encodeModelIfPresent(backgroundImage, forKey: .backgroundImage) } } @objcMembers open class BGThreeLayerTemplate: ThreeLayerTemplate { open var backgroundImage: LoadImageView? open override func loadView() { super.loadView() if let contentView { let imageView = LoadImageView(pinnedEdges: .all) imageView.translatesAutoresizingMaskIntoConstraints = false backgroundImage = imageView scrollView.insertSubview(imageView, belowSubview: contentView) imageView.pinTop(view.topAnchor) imageView.pinBottom(view.bottomAnchor) imageView.pinLeading(view.leadingAnchor) imageView.pinTrailing(view.trailingAnchor) } } open override func handleNewData() { super.handleNewData() if let model = templateModel { backgroundImage?.set(with: model.backgroundImage, nil, nil) } } }