How to set the image fit to the screen after zooming in a scroll view for assignment 4?

Skip to first unread message


Jul 4, 2012, 8:10:08 PM7/4/12
Here is my code:

    #import "PhotoViewController.h"
    #import "FlickrFetcher.h"
    @interface PhotoViewController () <UIScrollViewDelegate>
    @property (weak, nonatomic) IBOutlet UIImageView *imageView;
    @property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
    @property (nonatomic,strong) UIImage *image;
    @property (nonatomic,strong) NSDictionary *photo;
    @implementation PhotoViewController
    @synthesize imageView = _imageView;
    @synthesize scrollView = _scrollView;
    @synthesize image = _image;
    @synthesize url = _url;
    @synthesize photo = _photo;
    - (void)setUrl:(NSURL *)url
        if(_url != url) {
            _url = url;
            NSData *data = [NSData dataWithContentsOfURL:self.url];
            self.image = [UIImage imageWithData:data]; 
    - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
        return self.imageView;
    - (void)viewDidLoad
        [super viewDidLoad];
    //self.imageView = [self.imageView initWithImage:self.image];
        self.imageView.image = self.image;
        self.scrollView.contentSize = self.imageView.image.size;
        self.imageView.frame = CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);
        /*[self.scrollView setContentMode:UIViewContentModeScaleAspectFit];
        [self.scrollView sizeToFit];
        [self.scrollView setContentSize:CGSizeMake(self.imageView.frame.size.width, self.imageView.frame.size.height)]; */
        self.title = [ objectForKey:FLICKR_PHOTO_TITLE];
        self.scrollView.delegate = self;
    - (void)viewDidUnload
        [self setImageView:nil];
        [self setScrollView:nil];
        [super viewDidUnload];
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
        return YES;

I'm trying to set the image fit into whole iphone screen size or the UIView size after i zoom it in or out. However, it turns out that the after zooming image always stays in the top left corner of the screen so it leaves much unused white space. I tried to add some code which is the comment ones or change the springs and struts in the storyboard, but all didn't work. 

Another question is i implement the (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation method, but the image didn't rotate as the device rotates, i'm confused.

Hope someone could give me some hints, thanks in advance.
Reply all
Reply to author
0 new messages