title: UIScrollView: what is the difference between contentOffset and bounds.origin?
body: <p>I have implemented an UIScrollView delegate as:</p>
  
  <pre><code>- (void) scrollViewDidScroll: (UIScrollView *) scrollView {
      CGRect bounds = scrollView.bounds ; 
      CGPoint scrollLoc = scrollView.contentOffset ;
  
      NSLog(@"bounds: %@ offset:%@"
          ,   NSStringFromCGRect(bounds)
          ,   NSStringFromCGPoint(scrollLoc)) ;
  }
  </code></pre>
  
  <p>And whatever I do, scrolling or rotating the device, it seems that <code>contentOffset</code> and <code>bounds.origin</code> are always the same.</p>
  
  <p>Why do we need a contentOffset if that is the same as the bounds origin, or what is the case when both are actually different?</p>