Fabio
Fabio

Reputation: 1973

UIScrollView add zoom for the self.view

I need zooming all objects in the view, but lose the position of the objects (UIButton)

- (void)viewDidLoad
    {

        CGRect scrollViewFrame = CGRectMake(0, 0, 320, 460);
        scrollView = [[UIScrollView alloc] initWithFrame:scrollViewFrame];
        scrollView.delegate = self;

        scrollView.minimumZoomScale = 1;
        scrollView.maximumZoomScale = 4.0;


        [self.view addSubview:scrollView];
        CGSize scrollViewContentSize = CGSizeMake(640, 800);
        [scrollView setContentSize:scrollViewContentSize];



        NSMutableArray *datos = [[NSMutableArray alloc]initWithObjects:@"ob1",@"ob2",@"ob3",@"ob4", nil];

         for (int i = 0; i < [datos count]; i++) {


          UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
          [button addTarget:self action:@selector(aMethod)
          forControlEvents:UIControlEventTouchUpInside];
           button.frame = CGRectMake(100, 100*i, 70, 70);
           button.tag = i;
          [button setTitle: @"Line1" forState: UIControlStateNormal];
          button.hidden= NO;
          [scrollView addSubview:button];
          }



 }


-(void)aMethod{ 

}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{

     return scrollView.superview;
}

Upvotes: 0

Views: 246

Answers (1)

David
David

Reputation: 9945

You should setup a subview container and pass that as the viewForZoomingInScrollView.

The subview should contain your buttons:

self.buttonSubview = [[UIView alloc] initWithFrame:...];
...
[buttonSubview addSubview:button];
...
[scrollView addSubview:buttonSubview];

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
     return self.buttonSubview;
}

Upvotes: 1

Related Questions