From 9fd2d2cbda0ab1928e4ae4efee3ba9077fd0a774 Mon Sep 17 00:00:00 2001 From: Priya Date: Tue, 21 May 2019 14:04:46 -0400 Subject: [PATCH] Switch molecule --- MVMCoreUI/Molecules/Switch.swift | 55 ++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/MVMCoreUI/Molecules/Switch.swift b/MVMCoreUI/Molecules/Switch.swift index 4f410366..2c4fe19a 100644 --- a/MVMCoreUI/Molecules/Switch.swift +++ b/MVMCoreUI/Molecules/Switch.swift @@ -11,6 +11,7 @@ import UIKit @objcMembers public class Switch: ViewConstrainingView, FormValidationProtocol{ public var mvmSwitch = MVMCoreUISwitch() public var label = Label() + public var leftContainerView = UIView() public var mfTextButton = MFTextButton() var topConstraint_Switch: NSLayoutConstraint? var bottomConstraint_textBtn: NSLayoutConstraint? @@ -28,9 +29,11 @@ import UIKit open override func setupView() { super.setupView() mvmSwitch.addTarget(self, action: #selector(Switch.switchChanged), for: .valueChanged) + //leftContainerView.addSubview(mvmSwitch) + leftContainerView.addSubview(label) + leftContainerView.addSubview(mfTextButton) + addSubview(leftContainerView) addSubview(mvmSwitch) - addSubview(label) - addSubview(mfTextButton) // label.translatesAutoresizingMaskIntoConstraints = false mvmSwitch.translatesAutoresizingMaskIntoConstraints = false mfTextButton.translatesAutoresizingMaskIntoConstraints = false; @@ -71,28 +74,40 @@ import UIKit } // mvmSwitch.isOn = json?.optionalBoolForKey("state") ?? false mvmSwitch.setState(json?.optionalBoolForKey("state") ?? false, animated: true) - updateContraints() - } - - func updateContraints() { - if let isEmptyText = label.text?.isEmpty,isEmptyText == false { - topConstraint_Switch?.priority = UILayoutPriority(rawValue:249) - NSLayoutConstraint.constraintPinSubview(mvmSwitch, pinCenterX: false, pinCenterY: true) - _ = NSLayoutConstraint(pinFirstView: mvmSwitch, toSecondView: mfTextButton, withConstant: PaddingOne, directionVertical: true) - } - layoutIfNeeded() +// updateContraints(json?.optionalDictionaryForKey("textButton")) + leftContainerView.backgroundColor = .red } func setupConstraints() { - NSLayoutConstraint.constraintPinLeftSubview(label, leftConstant: 0) - NSLayoutConstraint.constraintPinSubview(mvmSwitch, pinCenterX: false, pinCenterY: true) - let dict = NSLayoutConstraint.constraintPinSubview(mvmSwitch, pinTop: true, topConstant: 0, topRelation: .greaterThanOrEqual, pinBottom: true, bottomConstant: 0, bottomRelation: .greaterThanOrEqual, pinLeft: false, leftConstant: 0, leftRelation: .equal, pinRight: true, rightConstant: 0, rightRelation: .greaterThanOrEqual) - topConstraint_Switch = dict?[ConstraintTop] as? NSLayoutConstraint + var constraint = label.topAnchor.constraint(equalTo: topAnchor) + constraint.priority = UILayoutPriority(rawValue: 249) + constraint.isActive = true + label.topAnchor.constraint(greaterThanOrEqualTo: topAnchor).isActive = true + label.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true + NSLayoutConstraint.constraintPinSubview(mvmSwitch, pinCenterX: false, pinCenterY: true) + let _ = NSLayoutConstraint.constraintPinSubview(mvmSwitch, pinTop: true, topConstant: 0, topRelation: .greaterThanOrEqual, pinBottom: true, bottomConstant: 0, bottomRelation: .greaterThanOrEqual, pinLeft: false, leftConstant: 0, leftRelation: .equal, pinRight: true, rightConstant: 0, rightRelation: .equal) + // NSLayoutConstraint.constraintPinRightSubview(mvmSwitch, rightConstant: 0) + constraint = mvmSwitch.topAnchor.constraint(equalTo: topAnchor) + constraint.priority = UILayoutPriority(rawValue: 249) + constraint.isActive = true + constraint = bottomAnchor.constraint(equalTo: mvmSwitch.bottomAnchor) + constraint.priority = UILayoutPriority(rawValue: 249) + constraint.isActive = true + //topConstraint_Switch = dict?[ConstraintTop] as? NSLayoutConstraint NSLayoutConstraint.constraintPinTopSubview(label, topConstant: 0) - _ = NSLayoutConstraint(pinFirstView: label, toSecondView: mvmSwitch, withConstant: PaddingOne, directionVertical: false) - _ = NSLayoutConstraint(pinFirstView: label, toSecondView: mfTextButton, withConstant: PaddingOne, directionVertical: true) - NSLayoutConstraint.constraintPinLeftSubview(mfTextButton, leftConstant: 0) - NSLayoutConstraint.constraintPinBottomSubview(mfTextButton, bottomConstant: 0) + +// mvmSwitch.setContentHuggingPriority(UILayoutPriority(rawValue: 800), for: NSLayoutConstraint.Axis.horizontal) + + mvmSwitch.leadingAnchor.constraint(greaterThanOrEqualTo: label.trailingAnchor).isActive = true + mvmSwitch.leadingAnchor.constraint(greaterThanOrEqualTo: mfTextButton.trailingAnchor).isActive = true + NSLayoutConstraint.constraintPinLeftSubview(mfTextButton, leftConstant: 0) + constraint = bottomAnchor.constraint(equalTo: mfTextButton.bottomAnchor) + constraint.priority = UILayoutPriority(249) + constraint.isActive = true + bottomAnchor.constraint(greaterThanOrEqualTo: mfTextButton.bottomAnchor).isActive = true + label.bottomAnchor.constraint(equalTo: mfTextButton.topAnchor, constant: 0).isActive = true + leftContainerView.setContentHuggingPriority(UILayoutPriority(rawValue: 900), for: NSLayoutConstraint.Axis.horizontal) + } public func isValidField() -> Bool {