UIScrollView View для увеличения не вызывается - PullRequest
0 голосов
/ 07 февраля 2012

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

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 Ответ

1 голос
/ 07 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...