Digital ACT-191 ONEAPP-10928 story: resolved constraint conflicts
This commit is contained in:
parent
12ad80643d
commit
e71b94bc4f
@ -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,9 +146,9 @@ 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([
|
||||
@ -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),
|
||||
@ -190,6 +190,10 @@ open class ModalDialog: View, UIScrollViewDelegate, ParentViewProtocol {
|
||||
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.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user