Merge branch 'feature/align_actiondetaiimage_with_android' into 'develop'

Changed code to align with Android.

See merge request BPHV_MIPS/mvm_core_ui!115
This commit is contained in:
Pfeil, Scott Robert 2019-08-29 15:42:18 -04:00
commit b13400ab56

View File

@ -14,8 +14,7 @@ import UIKit
// MARK: - Outlets
//------------------------------------------------------
let title = Label.commonLabelH3(true)
let message = Label.commonLabelB3(true)
let header = HeadlineBody(frame: .zero)
let button = PrimaryButton.primaryTinyButton(false)!
let imageLoader = MFLoadImageView(pinnedEdges: .all)
let leftContainer = ViewConstrainingView.empty()
@ -24,7 +23,7 @@ import UIKit
// MARK: - Properties
//------------------------------------------------------
var bottomTitlePadding: CGFloat = PaddingOne
var buttonHeaderPadding: CGFloat = PaddingTwo
//------------------------------------------------------
// MARK: - Constraints
@ -32,7 +31,6 @@ import UIKit
var imageLeadingConstraint: NSLayoutConstraint?
var buttonTopConstraint: NSLayoutConstraint?
var messageTopConstraint: NSLayoutConstraint?
//------------------------------------------------------
// MARK: - Initialization
@ -68,8 +66,7 @@ import UIKit
addSubview(leftContainer)
addSubview(imageLoader)
leftContainer.addSubview(title)
leftContainer.addSubview(message)
leftContainer.addSubview(header)
leftContainer.addSubview(button)
leftContainer.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor).isActive = true
@ -80,17 +77,11 @@ import UIKit
leftContainerBottom.priority = UILayoutPriority(249)
leftContainerBottom.isActive = true
title.topAnchor.constraint(equalTo: leftContainer.topAnchor).isActive = true
title.leadingAnchor.constraint(equalTo: leftContainer.leadingAnchor).isActive = true
leftContainer.trailingAnchor.constraint(equalTo: title.trailingAnchor).isActive = true
messageTopConstraint = message.topAnchor.constraint(equalTo: title.bottomAnchor, constant: PaddingOne)
messageTopConstraint?.isActive = true
message.leadingAnchor.constraint(equalTo: leftContainer.leadingAnchor).isActive = true
leftContainer.trailingAnchor.constraint(equalTo: message.trailingAnchor).isActive = true
buttonTopConstraint = button.topAnchor.constraint(equalTo: message.bottomAnchor, constant: PaddingTwo)
header.topAnchor.constraint(equalTo: leftContainer.topAnchor).isActive = true
header.leadingAnchor.constraint(equalTo: leftContainer.leadingAnchor).isActive = true
leftContainer.trailingAnchor.constraint(equalTo: header.trailingAnchor).isActive = true
buttonTopConstraint = button.topAnchor.constraint(equalTo: header.bottomAnchor, constant: buttonHeaderPadding)
buttonTopConstraint?.isActive = true
button.leadingAnchor.constraint(equalTo: leftContainer.leadingAnchor).isActive = true
@ -112,15 +103,12 @@ import UIKit
override open func updateView(_ size: CGFloat) {
super.updateView(size)
title.updateView(size)
message.updateView(size)
header.updateView(size)
button.updateView(size)
imageLoader.updateView(size)
leftContainer.updateView(size)
messageTopConstraint?.constant = title.hasText && message.hasText ? bottomTitlePadding : 0
buttonTopConstraint?.constant = message.hasText || title.hasText ? PaddingTwo : 0
buttonTopConstraint?.constant = header.hasText() ? buttonHeaderPadding : 0
}
public override static func estimatedHeight(forRow json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?) -> CGFloat {
@ -133,35 +121,31 @@ import UIKit
private func setDefaultState() {
title.font = MFStyler.fontH3()
message.font = MFStyler.fontB3()
header.headlineLabel.font = MFStyler.fontH3()
header.messageLabel.font = MFStyler.fontB3()
button.setAsSecondaryCustom()
button.isHidden = false
imageLoader.imageView.contentMode = .scaleAspectFit
imageLoader.addSizeConstraintsForAspectRatio = true
bottomTitlePadding = PaddingOne
buttonHeaderPadding = PaddingTwo
}
override open func reset() {
super.reset()
title.reset()
message.reset()
header.reset()
button.reset()
imageLeadingConstraint?.constant = 16
imageLoader.reset()
setDefaultState()
}
open override func setAsMolecule() {
super.setAsMolecule()
title.setAsMolecule()
message.setAsMolecule()
header.setAsMolecule()
button.setAsMolecule()
imageLoader.setAsMolecule()
setDefaultState()
}
@ -170,13 +154,13 @@ import UIKit
guard let dictionary = json else { return }
if let padding = dictionary.optionalCGFloatForKey("bottomTitlePadding") {
bottomTitlePadding = padding
if let padding = dictionary.optionalCGFloatForKey("buttonHeaderPadding") {
buttonHeaderPadding = padding
}
title.setWithJSON(dictionary.optionalDictionaryForKey("title"), delegateObject: delegateObject, additionalData: additionalData)
message.setWithJSON(dictionary.optionalDictionaryForKey("message"), delegateObject: delegateObject, additionalData: additionalData)
header.setWithJSON(dictionary.optionalDictionaryForKey("headlineBody"), delegateObject: delegateObject, additionalData: additionalData)
imageLoader.setWithJSON(dictionary.optionalDictionaryForKey("image"), delegateObject: delegateObject, additionalData: additionalData)
if let buttonDictionary = dictionary.optionalDictionaryForKey("button") {
button.setWithJSON(buttonDictionary, delegateObject: delegateObject, additionalData: additionalData)
} else {