diff --git a/VDS/Components/Tooltip/TooltipAlertViewController.swift b/VDS/Components/Tooltip/TooltipAlertViewController.swift index 17b93a28..aa59f58e 100644 --- a/VDS/Components/Tooltip/TooltipAlertViewController.swift +++ b/VDS/Components/Tooltip/TooltipAlertViewController.swift @@ -26,13 +26,14 @@ open class TooltipAlertViewController: UIViewController, Surfaceable { private var scrollView = UIScrollView().with { $0.translatesAutoresizingMaskIntoConstraints = false $0.backgroundColor = .clear - $0.scrollIndicatorInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: -5) } - private let containerView = View().with { + private let modalView = View().with { $0.layer.cornerRadius = 8 } - + + private let containerView = View() + private var line = Line().with { instance in instance.lineViewColorConfiguration = SurfaceColorConfiguration(VDSColor.elementsLowcontrastOnlight, VDSColor.elementsLowcontrastOndark).eraseToAnyColorable() } @@ -78,6 +79,7 @@ open class TooltipAlertViewController: UIViewController, Surfaceable { private let closeButtonTextColorConfiguration = SurfaceColorConfiguration(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark) + private let containerViewInset = VDSLayout.Spacing.space4X.value //-------------------------------------------------- // MARK: - Lifecycle //-------------------------------------------------- @@ -88,56 +90,61 @@ open class TooltipAlertViewController: UIViewController, Surfaceable { } open func setup() { - - scrollView.addSubview(titleLabel) - scrollView.addSubview(contentLabel) - containerView.addSubview(scrollView) - containerView.addSubview(line) - containerView.addSubview(closeButton) - view.addSubview(containerView) + containerView.addSubview(titleLabel) + containerView.addSubview(contentLabel) + scrollView.addSubview(containerView) + modalView.addSubview(scrollView) + modalView.addSubview(line) + modalView.addSubview(closeButton) + view.addSubview(modalView) + // Activate constraints NSLayoutConstraint.activate([ - containerView.leadingAnchor.constraint(greaterThanOrEqualTo: view.leadingAnchor, constant: VDSLayout.Spacing.space8X.value), - containerView.trailingAnchor.constraint(lessThanOrEqualTo: view.trailingAnchor, constant: -VDSLayout.Spacing.space8X.value), - containerView.topAnchor.constraint(greaterThanOrEqualTo: view.topAnchor), - containerView.bottomAnchor.constraint(lessThanOrEqualTo: view.bottomAnchor), - - containerView.heightAnchor.constraint(equalToConstant: 312), - containerView.widthAnchor.constraint(equalToConstant: 296), - containerView.centerXAnchor.constraint(equalTo: view.centerXAnchor), - containerView.centerYAnchor.constraint(equalTo: view.centerYAnchor), - - scrollView.topAnchor.constraint(equalTo: containerView.topAnchor, constant: VDSLayout.Spacing.space4X.value), - scrollView.leadingAnchor.constraint(equalTo: containerView.leadingAnchor, constant: VDSLayout.Spacing.space4X.value), - scrollView.trailingAnchor.constraint(equalTo: containerView.trailingAnchor, constant: -VDSLayout.Spacing.space4X.value), - scrollView.bottomAnchor.constraint(equalTo: line.topAnchor, constant: -VDSLayout.Spacing.space4X.value), + // Constraints for the floating modal view + modalView.centerXAnchor.constraint(equalTo: view.centerXAnchor), + modalView.centerYAnchor.constraint(equalTo: view.centerYAnchor), + modalView.widthAnchor.constraint(equalToConstant: 296), + modalView.heightAnchor.constraint(greaterThanOrEqualToConstant: 96), + modalView.heightAnchor.constraint(lessThanOrEqualToConstant: 312), - titleLabel.topAnchor.constraint(equalTo: scrollView.topAnchor), - titleLabel.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor), - titleLabel.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor), - titleLabel.widthAnchor.constraint(equalTo: scrollView.widthAnchor), - - contentLabel.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: VDSLayout.Spacing.space1X.value), - contentLabel.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor), - contentLabel.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor), - contentLabel.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor), - contentLabel.widthAnchor.constraint(equalTo: scrollView.widthAnchor), - - line.leadingAnchor.constraint(equalTo: containerView.leadingAnchor), - line.trailingAnchor.constraint(equalTo: containerView.trailingAnchor), + // Constraints for the scroll view + scrollView.topAnchor.constraint(equalTo: modalView.topAnchor), + scrollView.leadingAnchor.constraint(equalTo: modalView.leadingAnchor), + scrollView.trailingAnchor.constraint(equalTo: modalView.trailingAnchor), + scrollView.bottomAnchor.constraint(equalTo: line.topAnchor), + + // Constraints for the container view + containerView.topAnchor.constraint(equalTo: scrollView.topAnchor, constant: containerViewInset), + containerView.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor, constant: -containerViewInset), + containerView.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor, constant: containerViewInset), + containerView.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor, constant: -containerViewInset), + containerView.widthAnchor.constraint(equalTo: scrollView.widthAnchor, constant: -(containerViewInset * 2)), + containerView.heightAnchor.constraint(greaterThanOrEqualTo: scrollView.heightAnchor, constant: -(containerViewInset * 2)), + + line.leadingAnchor.constraint(equalTo: modalView.leadingAnchor), + line.trailingAnchor.constraint(equalTo: modalView.trailingAnchor), closeButton.topAnchor.constraint(equalTo: line.bottomAnchor), - closeButton.leadingAnchor.constraint(equalTo: containerView.leadingAnchor), - closeButton.trailingAnchor.constraint(equalTo: containerView.trailingAnchor), - closeButton.bottomAnchor.constraint(equalTo: containerView.bottomAnchor), - closeButton.heightAnchor.constraint(equalToConstant: 44.0) + closeButton.leadingAnchor.constraint(equalTo: modalView.leadingAnchor), + closeButton.trailingAnchor.constraint(equalTo: modalView.trailingAnchor), + closeButton.bottomAnchor.constraint(equalTo: modalView.bottomAnchor), + closeButton.heightAnchor.constraint(equalToConstant: 44.0), + + // Constraints on labels + titleLabel.topAnchor.constraint(equalTo: containerView.topAnchor), + titleLabel.leadingAnchor.constraint(equalTo: containerView.leadingAnchor), + titleLabel.trailingAnchor.constraint(equalTo: containerView.trailingAnchor), + contentLabel.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: VDSLayout.Spacing.space2X.value), + contentLabel.leadingAnchor.constraint(equalTo: containerView.leadingAnchor), + contentLabel.trailingAnchor.constraint(equalTo: containerView.trailingAnchor), + contentLabel.bottomAnchor.constraint(equalTo: containerView.bottomAnchor), + ]) - } open func updateView() { view.backgroundColor = backgroundColorConfiguration.getColor(self).withAlphaComponent(0.3) - containerView.backgroundColor = containerViewBackgroundColorConfiguration.getColor(self) + modalView.backgroundColor = containerViewBackgroundColorConfiguration.getColor(self) scrollView.indicatorStyle = surface == .light ? .black : .white titleLabel.surface = surface @@ -155,4 +162,3 @@ open class TooltipAlertViewController: UIViewController, Surfaceable { closeButton.setTitle(closeButtonText, for: .normal) } } - diff --git a/VDS/SupportingFiles/ReleaseNotes.txt b/VDS/SupportingFiles/ReleaseNotes.txt index 162872a7..b3737dfe 100644 --- a/VDS/SupportingFiles/ReleaseNotes.txt +++ b/VDS/SupportingFiles/ReleaseNotes.txt @@ -6,6 +6,7 @@ - CXTDT-427328 - Title Lockup text style combinations do not match spec - CXTDT-426527 - Tabs - Large Typography - CXTDT-427362 - Tooltip - Should not be a drop shadow on modal +- CXTDT-427975 - Tooltip - Scrollbar, multiple 1.0.25 =======