From 3564d993e17cfbaf1fd61a67efbe3fd9b18de529 Mon Sep 17 00:00:00 2001 From: "Pfeil, Scott Robert" Date: Tue, 19 Mar 2019 17:08:26 -0400 Subject: [PATCH] image molecule protocol --- MVMCoreUI/Atoms/Views/MFLoadImageView.swift | 22 +++++++++++++++++++++ MVMCoreUI/Atoms/Views/MFView.h | 2 ++ MVMCoreUI/Atoms/Views/MFView.m | 1 + 3 files changed, 25 insertions(+) diff --git a/MVMCoreUI/Atoms/Views/MFLoadImageView.swift b/MVMCoreUI/Atoms/Views/MFLoadImageView.swift index fad344b4..9c135325 100644 --- a/MVMCoreUI/Atoms/Views/MFLoadImageView.swift +++ b/MVMCoreUI/Atoms/Views/MFLoadImageView.swift @@ -191,6 +191,28 @@ import UIKit imageView.setContentHuggingPriority(UILayoutPriority.defaultLow, for: NSLayoutConstraint.Axis.vertical) } + public override func updateView(_ size: CGFloat) { + super.updateView(size) + let width = size.rounded() + if let imageName = json?.optionalStringForKey("image"), shouldLoadImage(withName: imageName, width: width) { + imageView.image = nil + imageView.animatedImage = nil + loadImage(withName: imageName, format: json?.optionalStringForKey("imageFormat"), width: NSNumber(value: Double(width)), height: nil) + loadImage(withName: imageName, format: json?.optionalStringForKey("imageFormat"), width: NSNumber(value: Double(width)), height: nil, customFallbackImage: json?.optionalStringForKey("fallbackImage")) + } + } + + // MARK: - MVMCoreUIMoleculeViewProtocol functions + public override func setWithJSON(_ json: [AnyHashable : Any]?, delegate: NSObject?, additionalData: [AnyHashable : Any]?) { + super.setWithJSON(json, delegate: delegate, additionalData: additionalData) + if let backgroundColorString = json?.optionalStringForKey(KeyBackgroundColor) { + backgroundColor = UIColor.mfGet(forHex: backgroundColorString) + } + if let accessibilityString = json?.optionalStringForKey("accessibilityText") { + imageView.accessibilityLabel = accessibilityString + } + } + // MARK: - load functions @objc public func loadImage(withName imageName: String?, format: String?, width: NSNumber?, height: NSNumber?, customFallbackImage: String?, completionHandler: @escaping MVMCoreGetImageBlock) { MVMCoreDispatchUtility.performBlock(onMainThread: { [unowned self] in diff --git a/MVMCoreUI/Atoms/Views/MFView.h b/MVMCoreUI/Atoms/Views/MFView.h index eb76b858..5e32ff0a 100644 --- a/MVMCoreUI/Atoms/Views/MFView.h +++ b/MVMCoreUI/Atoms/Views/MFView.h @@ -12,6 +12,8 @@ @interface MFView : UIView +@property (nullable, nonatomic, strong) NSDictionary *json; + // Called in the initialization functions. Can setup ui here. - (void)setupView; diff --git a/MVMCoreUI/Atoms/Views/MFView.m b/MVMCoreUI/Atoms/Views/MFView.m index 40df33a2..b2047c45 100644 --- a/MVMCoreUI/Atoms/Views/MFView.m +++ b/MVMCoreUI/Atoms/Views/MFView.m @@ -44,6 +44,7 @@ #pragma mark - MVMCoreUIMoleculeViewProtocol - (void)setWithJSON:(NSDictionary *)json delegate:(NSObject *)delegate additionalData:(nullable NSDictionary *)additionalData { + self.json = json; } @end