Carol Smith
Carol Smith

Reputation: 199

IOS 7 zooming is not working in a scroll view

I am building a ViewController just to show one image. I added the ImageView programmatically to a scroll view. I would like to allow the user to zoom in and out. This is my code

@interface ImageViewerViewController ()<UIScrollViewDelegate>
@property (nonatomic, strong) UIImageView *ImageView;
@property (weak, nonatomic) IBOutlet UIScrollView *Scroll;

@end

@implementation ImageViewerViewController

-(UIView*) viewForZoomingInScrollView{
    return self.ImageView;
}

-(void) viewDidLoad{
    self.Scroll.minimumZoomScale = 0.2;
    self.Scroll.maximumZoomScale = 1.5;
    self.Scroll.delegate = self;
    NSLog(@"View did load");
    if(self.imageName)
        [self updateImage];
}

-(void)setImageName:(NSString *)imageName{
    NSLog(@"set Image");
    _imageName = imageName;
}

-(void)updateImage{
    self.ImageView =[[UIImageView alloc]init];
    self.ImageView.image = [UIImage imageNamed:self.imageName];
    [self.ImageView sizeToFit];
    self.Scroll.contentSize = self.imageName? self.ImageView.image.size: CGSizeZero;
    [self.Scroll addSubview:self.ImageView];
}

@end

As you see, I already set the delegate of the scroll to self and I added the protocol header and the needed message.

But the zooming feature is not working.

Could you help me please? I appreciate your time and efforts.

Regards,

Upvotes: 1

Views: 804

Answers (1)

nikhil84
nikhil84

Reputation: 3207

This will work as I created a demo of it. If anything do else let me know.

-(void)viewDidLoad
{
  float minimumScale = [_floorPlanImageView frame].size.width /[_floorPlanScrollView frame].size.width;
  _floorPlanScrollView.maximumZoomScale = 5;  //Change as per you need
  _floorPlanScrollView.minimumZoomScale = minimumScale;  //Change as you need
  _floorPlanScrollView.zoomScale = minimumScale;
  _floorPlanScrollView.delegate =self;
  _floorPlanScrollView.clipsToBounds = YES;
}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
   return _floorPlanImageView;
}

Upvotes: 1

Related Questions