Digital ACT-191 ONEAPP-10928 story: resolved constraint conflicts

This commit is contained in:
Vasavi Kanamarlapudi 2024-09-26 13:40:35 +05:30
parent 12ad80643d
commit e71b94bc4f

View File

@ -106,7 +106,7 @@ open class ModalDialog: View, UIScrollViewDelegate, ParentViewProtocol {
//--------------------------------------------------
private let backgroundColorConfiguration = SurfaceColorConfiguration(VDSColor.backgroundPrimaryLight, VDSColor.backgroundPrimaryDark)
private let closeButtonTextColorConfiguration = SurfaceColorConfiguration(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark)
private let textColorConfiguration = SurfaceColorConfiguration(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark)
//--------------------------------------------------
// MARK: - Constraints
@ -146,10 +146,10 @@ open class ModalDialog: View, UIScrollViewDelegate, ParentViewProtocol {
addSubview(closeButton)
self.bringSubviewToFront(closeCrossButton)
let contentTrailingSpace = UIDevice.isIPad ? containerViewInset/2 : containerViewInset
let crossTopSpace = UIDevice.isIPad ? 0 : VDSLayout.space12X
let scrollTopSpace = UIDevice.isIPad ? containerViewInset : (crossTopSpace + closeCrossButtonSize)
let contentTrailingSpace = UIDevice.isIPad ? (containerViewInset/2) - 6 : containerViewInset
// Activate constraints
NSLayoutConstraint.activate([
widthAnchor.constraint(equalToConstant: maxWidth),
@ -159,7 +159,6 @@ open class ModalDialog: View, UIScrollViewDelegate, ParentViewProtocol {
closeCrossButton.leadingAnchor.constraint(greaterThanOrEqualTo: leadingAnchor),
closeCrossButton.trailingAnchor.constraint(equalTo: trailingAnchor),
closeCrossButton.heightAnchor.constraint(equalToConstant: closeCrossButtonSize),
closeCrossButton.widthAnchor.constraint(equalToConstant: closeCrossButtonSize),
// Constraints for the bottom button view
closeButton.leadingAnchor.constraint(equalTo: leadingAnchor, constant:containerViewInset),
@ -169,8 +168,9 @@ open class ModalDialog: View, UIScrollViewDelegate, ParentViewProtocol {
// Constraints for the scrollView
scrollView.topAnchor.constraint(equalTo: topAnchor, constant: scrollTopSpace),
scrollView.leadingAnchor.constraint(equalTo: leadingAnchor, constant:containerViewInset),
scrollView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -(contentTrailingSpace)),
scrollView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -contentTrailingSpace),
scrollView.bottomAnchor.constraint(equalTo: closeButton.topAnchor, constant: -contentLabelBottomSpace),
scrollView.widthAnchor.constraint(equalToConstant: (maxWidth - (containerViewInset + contentTrailingSpace))),
// Constraints for the contentStackView
contentStackView.topAnchor.constraint(equalTo: scrollView.topAnchor),
@ -189,7 +189,11 @@ open class ModalDialog: View, UIScrollViewDelegate, ParentViewProtocol {
/// Used to make changes to the View based off a change events or from local properties.
open override func updateView() {
super.updateView()
heightConstraint?.deactivate()
maxWidth = UIScreen.main.bounds.size.width * (70/100)
maxHeight = UIScreen.main.bounds.size.height * (70/100)
// Update surface and background
backgroundColor = backgroundColorConfiguration.getColor(self)
scrollView.indicatorStyle = surface == .light ? .black : .white
@ -199,10 +203,12 @@ open class ModalDialog: View, UIScrollViewDelegate, ParentViewProtocol {
contentLabel.surface = surface
// Re-arrange contentStack
contentStackView.arrangedSubviews.forEach { $0.removeFromSuperview() }
contentStackView.removeArrangedSubviews()
titleLabel.text = modalModel.title
contentLabel.text = modalModel.content
titleLabel.textColor = textColorConfiguration.getColor(self)
contentLabel.textColor = textColorConfiguration.getColor(self)
titleLabel.sizeToFit()
contentLabel.sizeToFit()
@ -232,9 +238,9 @@ open class ModalDialog: View, UIScrollViewDelegate, ParentViewProtocol {
}
// Update closeButton
let closeButtonTextColor = closeButtonTextColorConfiguration.getColor(self)
closeButton.setTitleColor(closeButtonTextColor, for: .normal)
closeButton.setTitleColor(closeButtonTextColor, for: .highlighted)
let textColor = textColorConfiguration.getColor(self)
closeButton.setTitleColor(textColor, for: .normal)
closeButton.setTitleColor(textColor, for: .highlighted)
closeButton.setTitle(modalModel.closeButtonText, for: .normal)
closeButton.accessibilityLabel = modalModel.closeButtonText
@ -243,6 +249,8 @@ open class ModalDialog: View, UIScrollViewDelegate, ParentViewProtocol {
scrollView.setNeedsLayout()
scrollView.layoutIfNeeded()
heightConstraint?.constant = maxHeight
heightConstraint?.activate()
}
/// Used to update any Accessibility properties.