refactored ViewProtocol

removed @objcMembers from components

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-08-03 11:44:35 -05:00
parent 7dc21628af
commit bf9562d264
5 changed files with 22 additions and 44 deletions

View File

@ -226,9 +226,9 @@
EA3361B4288B2A360071C351 /* Classes */ = {
isa = PBXGroup;
children = (
EA3361B5288B2A410071C351 /* VDSControl.swift */,
EA3C3B4B2894823E000CA526 /* AnyProxy-PropertyWrapper.swift */,
EAF7F09D289AAEC000B287F5 /* VDSConstants.swift */,
EA3361B5288B2A410071C351 /* VDSControl.swift */,
EAF7F09F289AB7EC00B287F5 /* VDSView.swift */,
);
path = Classes;

View File

@ -52,10 +52,10 @@ open class VDSControl<ModelType: Initable>: UIControl, ModelHandlerable, ViewPro
public func initialSetup() {
if !initialSetupPerformed {
initialSetupPerformed = true
setupView()
}
cancellable = $model.debounce(for: .seconds(VDSConstants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in
self?.onStateChange(viewModel: viewModel)
cancellable = $model.debounce(for: .seconds(VDSConstants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in
self?.onStateChange(viewModel: viewModel)
}
setup()
}
}
@ -63,11 +63,9 @@ open class VDSControl<ModelType: Initable>: UIControl, ModelHandlerable, ViewPro
backgroundColor = .clear
}
// MARK: - ViewProtocol
open func updateView(_ size: CGFloat) { }
// MARK: - ViewProtocol
/// Will be called only once.
open func setupView() {
open func setup() {
translatesAutoresizingMaskIntoConstraints = false
insetsLayoutMarginsFromSafeArea = false
}

View File

@ -52,10 +52,10 @@ open class VDSView<ModelType: Initable>: UIView, ModelHandlerable, ViewProtocol
public func initialSetup() {
if !initialSetupPerformed {
initialSetupPerformed = true
setupView()
}
cancellable = $model.debounce(for: .seconds(VDSConstants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in
self?.onStateChange(viewModel: viewModel)
cancellable = $model.debounce(for: .seconds(VDSConstants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in
self?.onStateChange(viewModel: viewModel)
}
setup()
}
}
@ -67,7 +67,7 @@ open class VDSView<ModelType: Initable>: UIView, ModelHandlerable, ViewProtocol
open func updateView(_ size: CGFloat) { }
/// Will be called only once.
open func setupView() {
open func setup() {
translatesAutoresizingMaskIntoConstraints = false
insetsLayoutMarginsFromSafeArea = false
}

View File

@ -19,9 +19,9 @@ import Combine
Knob: The circular indicator that slides on the container.
*/
@objcMembers public class VDSCheckbox: VDSCheckboxBase<DefaultCheckboxModel>{}
public class VDSCheckbox: VDSCheckboxBase<DefaultCheckboxModel>{}
@objcMembers open class VDSCheckboxBase<ModelType: VDSCheckboxModel>: VDSControl<ModelType>, Changable {
open class VDSCheckboxBase<ModelType: VDSCheckboxModel>: VDSControl<ModelType>, Changable {
//--------------------------------------------------
// MARK: - Private Properties
@ -185,16 +185,9 @@ import Combine
//--------------------------------------------------
// MARK: - Lifecycle
//--------------------------------------------------
public override func updateView(_ size: CGFloat) {
super.updateView(size)
checkboxHeightConstraint?.constant = checkboxSize.height
checkboxWidthConstraint?.constant = checkboxSize.width
}
public override func setupView() {
super.setupView()
open override func setup() {
super.setup()
self.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(VDSCheckbox.toggleAndAction)))
isAccessibilityElement = true
@ -398,7 +391,7 @@ import Combine
}
/// This will checkbox the state of the Checkbox and execute the actionBlock if provided.
public func toggleAndAction() {
@objc public func toggleAndAction() {
isOn.toggle()
onChange?()
}

View File

@ -18,9 +18,9 @@ import Combine
Knob: The circular indicator that slides on the container.
*/
@objcMembers public class VDSToggle: VDSToggleBase<DefaultToggleModel>{}
public class VDSToggle: VDSToggleBase<DefaultToggleModel>{}
@objcMembers open class VDSToggleBase<ModelType: VDSToggleModel>: VDSControl<ModelType>, Changable {
open class VDSToggleBase<ModelType: VDSToggleModel>: VDSControl<ModelType>, Changable {
//--------------------------------------------------
// MARK: - Private Properties
@ -271,21 +271,8 @@ import Combine
//--------------------------------------------------
// MARK: - Lifecycle
//--------------------------------------------------
public override func updateView(_ size: CGFloat) {
super.updateView(size)
toggleHeightConstraint?.constant = toggleSize.height
toggleWidthConstraint?.constant = toggleSize.width
knobHeightConstraint?.constant = knobSize.height
knobWidthConstraint?.constant = knobSize.width
toggleView.layer.cornerRadius = toggleSize.height / 2.0
knobView.layer.cornerRadius = toggleSize.height / 2.0
}
public override func setupView() {
super.setupView()
open override func setup() {
super.setup()
isAccessibilityElement = true
accessibilityTraits = .button