2012-02-07 2 views
0

Я сделал UIScrollView со страницами. На каждой странице у меня будет UIScrollView с UIImageView. Таким образом, я хочу обрабатывать масштабирование изображений на каждой странице. Но метод делегата с масштабированием не вызывается. Вот мой код:UIScrollView View для увеличения не называется

verticalScroll=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)]; 
      horizontalScroll=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)]; 



      verticalScroll.backgroundColor=[UIColor purpleColor]; 
      verticalScroll.pagingEnabled=YES; 
      verticalScroll.contentSize=CGSizeMake(768*[largeImagesFromGallery count], 1024); 


      horizontalScroll.backgroundColor=[UIColor blackColor]; 
      horizontalScroll.pagingEnabled=YES; 
      horizontalScroll.contentSize=CGSizeMake(1024*[largeImagesFromGallery count], 768); 

      float cofVert=1.34f; 
      for(int i=0; i<[largeImagesFromGallery count]; i++) 
      { 
       UIImage *temp=[largeImagesFromGallery objectAtIndex:i]; 

       UIScrollView *svVert=[[UIScrollView alloc] initWithFrame:CGRectMake(i*768, 0, temp.size.width/cofVert, temp.size.height/cofVert)]; 

       svVert.contentSize=CGSizeMake(temp.size.width/cofVert, temp.size.height/cofVert); 
       svVert.zoomScale=3.0f; 
       svVert.delegate=self; 


       UIImageView *imageVert=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, temp.size.width/cofVert, temp.size.height/cofVert)]; 
       imageVert.image=temp; 

       imageVert.tag=2000; 


       UIScrollView *svHor=[[UIScrollView alloc] initWithFrame:CGRectMake(i*1024, 0, temp.size.width, temp.size.height)]; 
       svHor.delegate=self; 
       svHor.contentSize=CGSizeMake(temp.size.width, temp.size.height); 

       UIImageView *imageHor=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, temp.size.width, temp.size.height)]; 
       imageHor.image=temp; 
       imageHor.tag=2000; 

       [svVert addSubview:imageVert]; 
       [svHor addSubview:imageHor]; 
       [verticalScroll addSubview:svVert]; 
       [horizontalScroll addSubview:svHor]; 


        //fr=CGRectMake(0, 0, 768, 1024); 
        //[verticalScroll addSubview:imageVert]; 
        // [horizontalScroll addSubview:imageHor]; 


      } 
      //verticalScroll.delegate=self; 
      // horizontalScroll.delegate=self; 
      ambiancesON=YES; 
      if(self.interfaceOrientation==UIInterfaceOrientationPortrait || self.interfaceOrientation==UIInterfaceOrientationPortraitUpsideDown) 
      { 
       [self.view addSubview:verticalScroll]; 
      } 
      else if(self.interfaceOrientation==UIInterfaceOrientationLandscapeLeft || self.interfaceOrientation==UIInterfaceOrientationLandscapeRight) 
      { 
       [self.view addSubview:horizontalScroll]; 

      } 

Так что теперь у меня есть метод масштабирования:

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

    NSLog(@"Log log log"); 
    NSLog(@"VIew? %@", [[scrollView subviews]objectAtIndex:0]); 

    return [[scrollView subviews]objectAtIndex:0]; 
} 

Увеличение не вызывается ((

ответ

1

Я думаю, что есть ошибка в вашем дизайне я. Рекомендуем создать класс контроллера вида для каждого внутреннего просмотра прокрутки (те, которые вы хотите отреагировать на увеличение). Таким образом, если все правильно подключено (делегаты UIScrollView назначены контроллеру внутреннего вида), он должен работать так, как вы ожидаете .

Смежные вопросы