2012-02-07 61 views
0

我做了一个带有页面的UIScrollView。在每一页上,我将有一个UIImageView与UIScrollView。我想以这种方式处理每个页面上图像的缩放。但缩放委托方法没有被调用。 这里是我的代码:UIScrollView缩放视图没有被调用

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委托被分配给内部视图控制器),它应该如您所期望的那样工作