title: Increasing frame.origin.x vs constant
body: <p>I'm trying to understand how iOS frame and bounds works.
  I put an subView:UIView on UIViewController and a button which can increase subView's frame origin coordinate and change textlabel with its value.</p>
  
  <p>like this,</p>
  
  <pre><code>let subView: UIView = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 100))
  
  override func viewDidLoad() {
      super.viewDidLoad()
      view.addSubview(subView)
      subView.backgroundColor = .blue
  }
  
  
  @IBAction func btnMoveBottomView(_ sender: Any) {  
      subView.frame.origin.y = subView.frame.origin.y + 100
      lbFrameInfo.text = String(format:"sub = (%.1f, %.1f)", subView.frame.origin.x, subView.frame.origin.y)
      self.view.setNeedsLayout()
      self.view.layoutIfNeeded()
  }
  </code></pre>
  
  <p>After I make this action, I see subView go down but text doesn't change.</p>
  
  <p>on debug console I see this change</p>
  
  <pre><code>po subView.frame.origin
  ▿ (50.0, 2350.0)
    - x : 50.0
    - y : 2350.0
  </code></pre>
  
  <p>updateViewConstraints has been called too.</p>
  
  <pre><code>override func updateViewConstraints() {
      print("updateViewConstraints")
      super.updateViewConstraints()
  }
  </code></pre>
  
  <p>Instead of increasing frame.origin.x like this, increasing value of leading constant works perfectly.</p>
  
  <p>It would be appreciated if someone can guide me the differences of these and the concept of frame and if it is related with auto-layout things</p>