title: UIView autorotation issue
body: <p>I am getting issues in autorotation of a UIView which is nothing but a red line of width 4 and height half of superview's height in landscape mode, and in portrait mode the height is 4 points and width is half of superview width. You can see the issue in the gif. As I rotate from landscape to portrait, the effect of autorotation is not smooth and with distortions.</p>
  
  <p><a href="https://i.stack.imgur.com/mcJLd.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/mcJLd.gif" alt="enter image description here"></a></p>
  
  <p>Here is the code. What am I doing wrong?</p>
  
  <pre><code>private var myView:UIView!
  
  override func viewDidLoad() {
      super.viewDidLoad()
      // Do any additional setup after loading the view, typically from a nib.
  
      myView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width/2, height: 4))
      myView.backgroundColor = UIColor.red
      view.addSubview(myView)
  
      myView.center = CGPoint(x: view.bounds.width/2, y: view.bounds.height/2)
  
  
  }
  
  private func layoutMyView() {
  
      let orientation = UIApplication.shared.statusBarOrientation
  
      if orientation == .landscapeLeft || orientation == .landscapeRight {
          myView.frame = CGRect(x: 0, y: 0, width: view.bounds.width/2, height: 4)
      } else {
          myView.frame = CGRect(x: 0, y: 0, width: 4, height: view.bounds.height/2)
      }
  
      myView.center = CGPoint(x: view.bounds.width/2, y: view.bounds.height/2)
  }
  
  
  override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
  
      let orientation = UIApplication.shared.statusBarOrientation
  
      NSLog("View will transition to \(size), \(orientation.rawValue)")
  
      if size.width &lt; size.height {
          NSLog("Portrait mode")
      } else {
          NSLog("Landscape mode")
      }
  
      super.viewWillTransition(to: size, with: coordinator)
  
      coordinator.animate(alongsideTransition: { [unowned self] (_) in
  
          let orient = UIApplication.shared.statusBarOrientation
  
           self.layoutMyView()
  
          }, completion: { [unowned self] (UIViewControllerTransitionCoordinatorContext) -&gt; Void in
  
              let orient = UIApplication.shared.statusBarOrientation
              self.layoutMyView()
              NSLog("rotation completed to \(orient.rawValue), \(self.myView.frame)")
      })
  }
  </code></pre>