未调用用于缩放的UIScrollView视图



我制作了一个带有页面的UIScrollView。在每一页上,我都会有一个带有UIImageView的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];
}

Zoom未被调用(

我认为您的设计有一个缺陷。我建议为每个内部滚动视图(您想要响应缩放的视图)创建一个视图控制器类。这样,如果一切都连接正确(UIScrollView委托被分配给内部视图控制器),它应该可以按预期工作。

最新更新