title: How to update ScrollView Width after device rotation?
body: <p>I am following a <a href="https://www.youtube.com/watch?v=EKAVB_56RIU&amp;t=617s" rel="nofollow noreferrer">tutorial</a> to create a swift app that adds a number of views to a scroll view and then allows me to scroll between them. I have the app working and understand it for the most part. When I change the orientation of the device the views width don't get updated so I have parts of more than one view controller on the screen? Does anybody know how to fix this? From my understanding I need to call something in the viewsDidTransition method to redraw the views. Any help would be greatly appreciated. Thanks!</p>
  <p>Here is what I have so far:</p>
  <pre><code>import UIKit
  
  class ViewController: UIViewController {
  
      private let scrollView = UIScrollView()
      
      private let pageControl: UIPageControl = {
         let pageControl = UIPageControl()
          pageControl.numberOfPages = 5
          pageControl.backgroundColor = .systemBlue
          return pageControl
      }()
      
      override func viewDidLoad() {
          super.viewDidLoad()
          scrollView.delegate = self
          pageControl.addTarget(self,
                                action: #selector(pageControlDidChange(_:)),
                                for: .valueChanged)
          scrollView.backgroundColor = .red
          view.addSubview(scrollView)
          view.addSubview(pageControl)
      }
      
      @objc private func pageControlDidChange(_ sender: UIPageControl){
          let current = sender.currentPage
          scrollView.setContentOffset(CGPoint(x: CGFloat(current) * view.frame.size.width,
                                               y: 0), animated: true)
      }
      
      
      
  
      override func viewDidLayoutSubviews() {
          super.viewDidLayoutSubviews()
          pageControl.frame = CGRect(x: 10, y: view.frame.size.height - 100, width: view.frame.size.width - 20, height: 70)
  
          scrollView.frame = CGRect(x: 0, y: 0, width: view.frame.size.width, height: view.frame.size.height - 100)
          
          
          if scrollView.subviews.count == 2 {
              configureScrollView()
          }
          
      }
      
      private func configureScrollView(){
          scrollView.contentSize = CGSize(width: view.frame.size.width*5, height: scrollView.frame.size.height)
          scrollView.isPagingEnabled = true
          let colors: [UIColor] = [.systemRed, .systemGray, .systemGreen, .systemOrange, .systemPurple]
          
          
          
          for x in 0..&lt;5{
              let page = UIView(frame: CGRect(x: CGFloat(x) * view.frame.size.width, y: 0, width: view.frame.size.width, height: scrollView.frame.size.height))
              page.backgroundColor = colors[x]
              scrollView.addSubview(page)
          }
      }
      
      override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
          print(&quot;hello world&quot;)
          
      }
      
      
  }
  
  extension ViewController: UIScrollViewDelegate {
      func scrollViewDidScroll(_ scrollView: UIScrollView) {
          pageControl.currentPage = Int(floorf(Float(scrollView.contentOffset.x) / Float(scrollView.frame.size.width)))
      }
      }
      
  </code></pre>