title: UIScroll center image
body: <p>I've edited this question a few times, but can still not get my images to center inside a uiview.  I want them to be able to rotate like the photos app and display the correct size when a user brings them up.  Here is what I'm working with:</p>
  
  <p>In my PhotoViewController.h</p>
  
  <pre><code>#import &lt;UIKit/UIKit.h&gt;
  
  @protocol PhotoViewControllerDelegate &lt;NSObject&gt;
  
  - (void)toggleChromeDisplay;
  
  @end
  
  
  @interface PhotoViewController : UIViewController &lt;UIScrollViewDelegate, UIGestureRecognizerDelegate&gt;
  
  
  @property (nonatomic, strong) UIImage *photo;
  @property (nonatomic) NSUInteger num;
  
  
  //Delegate
  @property (nonatomic, strong) id&lt;PhotoViewControllerDelegate&gt; photoViewControllerDelegate;
  
  @property (nonatomic, strong) UIImageView *photoImgView;
  @property (nonatomic, strong) UIScrollView *scrollView;
  
  
  
  @end
  </code></pre>
  
  <p>In my PhotoViewController.m:</p>
  
  <pre><code>#import "PhotoViewController.h"
  
  @interface PhotoViewController ()
  
  @end
  
  @implementation PhotoViewController
  
  
  - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  {
      self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
      if (self) {
          //todo
  
      }
      return self;
  }
  
  - (void)viewDidLoad
  {
      [super viewDidLoad];
      CGRect screenBounds = self.view.bounds;
  
  
      //scroll view
      _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, screenBounds.size.width, screenBounds.size.height)];
      _scrollView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
      _scrollView.pagingEnabled = NO;
      _scrollView.scrollEnabled = YES;
      [_scrollView setBackgroundColor:[UIColor blueColor]];
  
      //Zoom Properties
      _scrollView.maximumZoomScale = 6.0;
      _scrollView.minimumZoomScale = 1.0;
      _scrollView.bouncesZoom = YES;
      _scrollView.delegate = self;
      _scrollView.zoomScale = 1.0;
      _scrollView.contentSize = _photoImgView.bounds.size;
      [_scrollView setShowsHorizontalScrollIndicator:NO];
      [_scrollView setShowsVerticalScrollIndicator:NO];
      [self photoBounds];
  
  
      [self.view addSubview: _scrollView];
  
  
      //Add the UIImageView
      _photoImgView = [[UIImageView alloc] initWithImage:_photo];
      _photoImgView.image = _photo;
      _photoImgView.clipsToBounds = YES;
      _photoImgView.contentMode = UIViewContentModeScaleAspectFit;
      _photoImgView.autoresizingMask = (UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin);
      [_photoImgView setUserInteractionEnabled:YES];
  
      [_scrollView addSubview: _photoImgView];
  
  
      //Set up Gesture Recognizer
      UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGestureCaptured:)];
      UITapGestureRecognizer *dTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dTapGestureCaptured:)];
  
      dTap.numberOfTapsRequired = 2;
      [singleTap requireGestureRecognizerToFail:dTap];
  
      //Gesture Methods
      [self.scrollView addGestureRecognizer:singleTap];
      [self.scrollView addGestureRecognizer : dTap];
  }
  
  
  
  
  
  - (void)photoBounds
  {
  
      UIInterfaceOrientation statusbar = [[UIApplication sharedApplication] statusBarOrientation];
      CGSize photoBounds = _photo.size;
      CGSize scrollBounds = self.view.bounds.size;
      CGRect frameToCenter = [_photoImgView frame];
  
      float newHeight = (scrollBounds.width / photoBounds.width) * photoBounds.height;
      float newWidth = (scrollBounds.height / photoBounds.height) * photoBounds.width;
      float yDist = fabsf(scrollBounds.height - newHeight) / 2;
      float xDist = fabsf(scrollBounds.width - newWidth) / 2;
  
  
      //Width Larger
      if (photoBounds.width &gt;=photoBounds.height) {
  
          NSLog(@"portrait width");
          _photoImgView.frame = CGRectMake(0, 0, scrollBounds.width, newHeight);
          frameToCenter.origin.y = yDist;
  
      }
  
      //Height Larger
      else if (photoBounds.height &gt; photoBounds.width) {
  
          NSLog(@"portrait height");
          _photoImgView.frame = CGRectMake(0, 0, newWidth, scrollBounds.height);
          frameToCenter.origin.x = xDist;
  
      }
  
      //Square
      else {
  
          NSLog(@"portrait square");
          if ((statusbar == 1) || (statusbar == 2)) {
              _photoImgView.frame = CGRectMake(0, 0, scrollBounds.width, newHeight);
              frameToCenter.origin.y = yDist;
  
          } else {
  
              _photoImgView.frame = CGRectMake(0, 0, newWidth, scrollBounds.height);
              frameToCenter.origin.x = xDist;
          }
  
      }
  
  }
  
  
  
  
  //Rotation Magic
  - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
  {
      //later
  }
  
  - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
  {
      [self photoBounds];
  }
  
  - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
  {
      //
  }
  
  - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
  {
      return YES;
  }
  
  
  
  //Zoom Ability
  - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
  {
      return self.photoImgView;
  }
  
  - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
  {
      NSLog(@"scale %f", scale);
      NSLog(@"done zooming");
  
  
  
  }
  
  
  
  
  //Touches Control
  - (void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture
  {
      //CGPoint touchPoint=[gesture locationInView:_scrollView];
      NSLog(@"touched");
      NSLog(@"single touch");
      [self performSelector:@selector(callingHome) withObject:nil afterDelay:0];
  
  }
  
  - (void)dTapGestureCaptured:(UITapGestureRecognizer *)gesture
  {
  
      NSLog(@"double touched");
  }
  
  - (void)panGestureCaptured:(UIPanGestureRecognizer *)gesture
  {
  
      NSLog(@"pan gesture");
  
  }
  
  
  - (void)callingHome {}
  
  @end
  </code></pre>
  
  <p>The overall issue is that I can not get my picture to display correctly and be able to zoom on just it, no space around it and It needs to be the correct dimensions on load.  I've been struggling with it for a few days.</p>
  
  <p>Any help?</p>