From 2b978ffd03e2e1b118f6f019ccd0cbb14d8cdae0 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Fri, 28 Jun 2024 18:09:57 -0500 Subject: [PATCH] updated samples Signed-off-by: Matt Bruce --- .../TileContainerViewController.swift | 143 +++++++++++------- .../TileletViewController.swift | 32 ++-- 2 files changed, 113 insertions(+), 62 deletions(-) diff --git a/VDSSample/ViewControllers/TileContainerViewController.swift b/VDSSample/ViewControllers/TileContainerViewController.swift index 0c3a530..b32e7d5 100644 --- a/VDSSample/ViewControllers/TileContainerViewController.swift +++ b/VDSSample/ViewControllers/TileContainerViewController.swift @@ -115,54 +115,77 @@ class TileContainerViewController: BaseViewController { override func viewDidLoad() { super.viewDidLoad() - addContentTopView(view: .makeWrapper(for: component)) - component.width = 300 + + let mainView = View() + mainView.backgroundColor = .purple + + ///top + let topView = View() + topView.backgroundColor = .yellow + + let topLabel = Label() + topLabel.text = "Do you want to Register?" + + let topButton = Button() + topButton.setTitle("Register", for: .normal) + + ///bottom + let bottomView = View() + bottomView.backgroundColor = .green + + let bottomLabel = Label() + bottomLabel.text = "Forgot your info?" + + let bottomButton = Button() + bottomButton.setTitle("Forgot Password", for: .normal) + + mainView.addSubview(topView) + mainView.addSubview(bottomView) + + topView.addSubview(topLabel) + topView.addSubview(topButton) + + bottomView.addSubview(bottomLabel) + bottomView.addSubview(bottomButton) + let space: CGFloat = 5 + topView + .pinTop(space*2) + .pinLeading(space*2) + .pinTrailing(space*2) + .pinBottom(anchor: bottomView.topAnchor, constant: space*2) + + topLabel + .pinTop(space) + .pinLeading(space) + .pinTrailing(space) + .pinBottom(anchor: topButton.topAnchor, constant: space) + + topButton + .pinBottom(space) + .pinLeading(space) + .pinTrailingLessThanOrEqualTo(anchor: nil, constant: space) + + bottomView + .pinLeading(space*2) + .pinTrailing(space*2) + .pinBottom(space*2) + + bottomLabel + .pinTop(space) + .pinLeading(space) + .pinTrailing(space) + .pinBottom(anchor: bottomButton.topAnchor, constant: space) + + bottomButton + .pinBottom(space) + .pinLeading(space) + .pinTrailingLessThanOrEqualTo(anchor: nil, constant: space) + component.color = .secondary component.accessibilityLabel = "Tile Container" - - let level2View = View() - level2View.backgroundColor = .purple - - let level3View = View() - level3View.backgroundColor = .yellow - level2View.addSubview(level3View) - level3View.pinToSuperView(.uniform(15)) - let level2label = Label() - level2label.text = "Do you want to Register?" - - level3View.addSubview(level2label) - level2label.pinTop().pinLeading() - - let level3Button = Button() - level3Button.setTitle("Register", for: .normal) - - level3View.addSubview(level3Button) - level3Button.pinTop(anchor: level2label.bottomAnchor, constant: 5) - level3Button.pinLeading() - - let level4View = View() - level4View.backgroundColor = .green - level3View.addSubview(level4View) - level4View.pinTop(anchor: level3Button.bottomAnchor, constant: 10) - level4View.pinLeading() - level4View.pinBottom() - level4View.pinTrailing() - - let level4Label = Label() - level4Label.text = "Forgot your info?" - level4View.addSubview(level4Label) - level4Label.pinTop().pinLeading() - - let level4Button = Button() - level4Button.setTitle("Forgot Password", for: .normal) - level4View.addSubview(level4Button) - - level4Button.pinTop(anchor: level4Label.bottomAnchor, constant: 5) - level4Button.pinLeading().pinBottom() - - - component.addContentView(level2View) + addContentTopView(view: .makeWrapper(for: component)) + component.addContentView(mainView) setupPicker() setupModel() } @@ -248,20 +271,34 @@ class TileContainerViewController: BaseViewController { heightTextField .numberPublisher .sink { [weak self] number in - guard let self else { return } - if let value = number?.cgFloatValue, value >= 100 && value < self.view.frame.height * 0.65 { - self.component.height = value - self.component.layoutIfNeeded() + guard let self, let number = number?.cgFloatValue else { + self?.heightTextField.text = "" + return + } + if number >= 100 && number < self.view.frame.height * 0.65 { + self.component.height = number + } else { + self.component.height = nil + } + if let val = heightTextField.text, val.count > 2, number < 100 { + heightTextField.text = "" } }.store(in: &subscribers) widthTextField .numberPublisher .sink { [weak self] number in - guard let self else { return } - if let value = number?.cgFloatValue, value >= 100 && value < self.view.frame.width * 0.85 { - self.component.width = value - self.component.layoutIfNeeded() + guard let self, let number = number?.cgFloatValue else { + self?.widthTextField.text = "" + return + } + if number >= 100 && number < self.view.frame.width * 0.85 { + self.component.width = number + } else { + self.component.width = nil + } + if let val = widthTextField.text, val.count > 2, number < 100 { + widthTextField.text = "" } }.store(in: &subscribers) } diff --git a/VDSSample/ViewControllers/TileletViewController.swift b/VDSSample/ViewControllers/TileletViewController.swift index e2fd6db..cbd35e7 100644 --- a/VDSSample/ViewControllers/TileletViewController.swift +++ b/VDSSample/ViewControllers/TileletViewController.swift @@ -440,20 +440,34 @@ class TileletViewController: BaseViewController { heightTextField .numberPublisher .sink { [weak self] number in - guard let self else { return } - if let value = number?.cgFloatValue, value >= 100 && value < self.view.frame.height * 0.65 { - self.component.height = value - self.component.layoutIfNeeded() + guard let self, let number = number?.cgFloatValue else { + self?.heightTextField.text = "" + return + } + if number >= 100 && number < self.view.frame.height * 0.65 { + self.component.height = number + } else { + self.component.height = nil + } + if let val = heightTextField.text, val.count > 2, number < 100 { + heightTextField.text = "" } }.store(in: &subscribers) - + widthTextField .numberPublisher .sink { [weak self] number in - guard let self else { return } - if let value = number?.cgFloatValue, value >= 100 && value < self.view.frame.width * 0.85 { - self.component.width = value - self.component.layoutIfNeeded() + guard let self, let number = number?.cgFloatValue else { + self?.widthTextField.text = "" + return + } + if number >= 100 && number < self.view.frame.width * 0.85 { + self.component.width = number + } else { + self.component.width = nil + } + if let val = widthTextField.text, val.count > 2, number < 100 { + widthTextField.text = "" } }.store(in: &subscribers)