Translates MFCustomButton to Button

This commit is contained in:
Robinson, Blake 2019-12-18 17:58:53 -05:00
parent ed25385d4b
commit 39c96849c8
3 changed files with 66 additions and 5 deletions

View File

@ -32,6 +32,7 @@
943784F6236B77BB006A1E82 /* GraphViewAnimationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 943784F4236B77BB006A1E82 /* GraphViewAnimationHandler.swift */; };
9455B19C234F8A0400A574DB /* MVMAnimationFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9455B19B234F8A0400A574DB /* MVMAnimationFramework.framework */; };
948DB67E2326DCD90011F916 /* MultiProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 948DB67D2326DCD90011F916 /* MultiProgress.swift */; };
C003506123AA94CD00B6AC29 /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = C003506023AA94CD00B6AC29 /* Button.swift */; };
D20A9A5E2243D3E300ADE781 /* TwoButtonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D20A9A5D2243D3E300ADE781 /* TwoButtonView.swift */; };
D213347723843825008E41B3 /* Line.swift in Sources */ = {isa = PBXBuildFile; fileRef = D213347623843825008E41B3 /* Line.swift */; };
D224798A2314445E003FCCF9 /* LabelSwitch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D22479892314445E003FCCF9 /* LabelSwitch.swift */; };
@ -230,6 +231,7 @@
943784F4236B77BB006A1E82 /* GraphViewAnimationHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GraphViewAnimationHandler.swift; sourceTree = "<group>"; };
9455B19B234F8A0400A574DB /* MVMAnimationFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MVMAnimationFramework.framework; path = ../SharedFrameworks/MVMAnimationFramework.framework; sourceTree = "<group>"; };
948DB67D2326DCD90011F916 /* MultiProgress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultiProgress.swift; sourceTree = "<group>"; };
C003506023AA94CD00B6AC29 /* Button.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Button.swift; sourceTree = "<group>"; };
D20A9A5D2243D3E300ADE781 /* TwoButtonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TwoButtonView.swift; sourceTree = "<group>"; };
D213347623843825008E41B3 /* Line.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Line.swift; sourceTree = "<group>"; };
D22479892314445E003FCCF9 /* LabelSwitch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelSwitch.swift; sourceTree = "<group>"; };
@ -733,6 +735,7 @@
DBC4391A224421A0001AB423 /* CaretButton.swift */,
D29DF25821E6A22D003B2FB9 /* MFButtonProtocol.h */,
D29DF16B21E69E1F003B2FB9 /* ButtonDelegateProtocol.h */,
C003506023AA94CD00B6AC29 /* Button.swift */,
D29DF16A21E69E1F003B2FB9 /* MFCustomButton.h */,
D29DF17021E69E1F003B2FB9 /* MFCustomButton.m */,
D29DF16C21E69E1F003B2FB9 /* PrimaryButton.h */,
@ -1158,6 +1161,7 @@
D29DF11821E6805F003B2FB9 /* NSLayoutConstraint+MFConvenience.m in Sources */,
D29DF26C21E6AA0B003B2FB9 /* FLAnimatedImage.m in Sources */,
D29770FC21F7C77400B2F0D0 /* MVMCoreUITextFieldView.m in Sources */,
C003506123AA94CD00B6AC29 /* Button.swift in Sources */,
D29DF25121E6A177003B2FB9 /* MFDigitTextBox.m in Sources */,
DBC4391B224421A0001AB423 /* CaretButton.swift in Sources */,
0198F7A82256A80B0066C936 /* MFRadioButton.m in Sources */,

View File

@ -0,0 +1,57 @@
//
// Button.swift
// MVMCoreUI
//
// Created by Robinson, Blake on 12/18/19.
// Copyright © 2019 Verizon Wireless. All rights reserved.
//
@objcMembers open class Button: UIButton, MFButtonProtocol {
public var actionMap: [AnyHashable: Any]?
public weak var buttonDelegate: ButtonDelegateProtocol?
public var heightConstraint: NSLayoutConstraint?
//Does buttonTap block need to be rewritten in swift?
private var buttonTapBlock: ButtonTapBlock?
public func addBlock(_ buttonTapBlock: @escaping ButtonTapBlock, event: Event) {
self.buttonTapBlock = buttonTapBlock
addTarget(self, action: #selector(callBlock(_:)), for: event)
}
func callBlock(_ sender: Button) {
guard let buttonTapBlock = buttonTapBlock else { return }
buttonTapBlock(self)
}
public func setWithActionMap(_ actionMap: [AnyHashable: Any]?, delegateObject: DelegateObject?, additionalData: [AnyHashable: Any]?) {
self.actionMap = actionMap
self.titleLabel?.numberOfLines = 0
self.titleLabel?.lineBreakMode = .byWordWrapping
setTitle(actionMap?.stringForkey(KeyTitle), for: .normal)
if let actionMap = self.actionMap,
let disableButtonAsAny = actionMap[KeyDisableButton],
let isDisabled = disableButtonAsAny as? Bool {
isEnabled = !isDisabled
}
if let mVMCoreUIDelegateObject = delegateObject as? MVMCoreUIDelegateObject {
self.buttonDelegate = mVMCoreUIDelegateObject.buttonDelegate
}
self.addBlock({ [weak self] (sender) in
guard let self = self else { return }
var performAction = true
if let shouldPerformAction = self.buttonDelegate?.button?(self, shouldPerformActionWithMap: actionMap, additionalData: additionalData) {
performAction = shouldPerformAction
}
if performAction {
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalData, delegateObject: delegateObject)
}
}, event: .touchUpInside)
}
}

View File

@ -8,7 +8,7 @@
//
open class CaretButton: MFCustomButton, MVMCoreUIMoleculeViewProtocol, MVMCoreUIViewConstrainingProtocol {
open class CaretButton: Button, MVMCoreUIMoleculeViewProtocol, MVMCoreUIViewConstrainingProtocol {
//------------------------------------------------------
// MARK: - Constants
@ -46,10 +46,10 @@ open class CaretButton: MFCustomButton, MVMCoreUIMoleculeViewProtocol, MVMCoreUI
super.layoutSubviews()
}
public func setEnabled(_ enabled: Bool) {
super.isEnabled = enabled
changeCaretColor()
override public var isEnabled: Bool {
didSet {
changeCaretColor()
}
}
public func updateView(_ size: CGFloat) {