Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. import UIKit
  2.  
  3. class VerticalScrollableStackViewController: UIViewController {
  4.  
  5. let scrollView: UIScrollView = UIScrollView(frame: .zero)
  6. let stackView: UIStackView = UIStackView(frame: .zero)
  7.  
  8. override func viewDidLoad() {
  9. super.viewDidLoad()
  10. self.view.backgroundColor = .gray
  11.  
  12. self.view.addSubview(self.scrollView)
  13. self.setupScrollViewConstraints()
  14.  
  15. self.setupStackViewElements()
  16. self.addStackView(to: self.scrollView)
  17. }
  18.  
  19.  
  20. func setupScrollViewConstraints() {
  21. self.scrollView.translatesAutoresizingMaskIntoConstraints = false
  22. self.scrollView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor).isActive = true
  23. self.scrollView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor).isActive = true
  24. self.scrollView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
  25. self.scrollView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
  26. }
  27.  
  28.  
  29. func setupStackViewElements() {
  30. self.stackView.axis = .vertical
  31.  
  32. let redView = getFullWidthView(height: 100.0, color: .red)
  33. self.stackView.addArrangedSubview(redView)
  34.  
  35. let blueView = getFullWidthView(height: 200.0, color: .blue)
  36. self.stackView.addArrangedSubview(blueView)
  37.  
  38. let yellowView = getFullWidthView(height: 300.0, color: .yellow)
  39. self.stackView.addArrangedSubview(yellowView)
  40.  
  41. let whiteView = getFullWidthView(height: 400.0, color: .white)
  42. self.stackView.addArrangedSubview(whiteView)
  43.  
  44. let orangeView = getFullWidthView(height: 500.0, color: .orange)
  45. self.stackView.addArrangedSubview(orangeView)
  46. }
  47.  
  48.  
  49. func addStackView(to view: UIView) {
  50. view.addSubview(self.stackView)
  51.  
  52. self.stackView.translatesAutoresizingMaskIntoConstraints = false
  53. self.stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
  54. self.stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
  55. self.stackView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
  56. self.stackView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
  57.  
  58. self.stackView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
  59. }
  60.  
  61.  
  62. func getFullWidthView(height: CGFloat, color: UIColor) -> UIView {
  63. let view = UIView(frame: CGRect(origin: .zero, size: CGSize(width: self.view.frame.width - 5.0, height: height)))
  64. view.backgroundColor = color
  65. view.heightAnchor.constraint(equalToConstant: height).isActive = true
  66.  
  67. return view
  68. }
  69.  
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement