UIScrollView viewForZoomingInScrollView, когда pagingEnabled с несколькими UIImageViews в нем - PullRequest
2 голосов
/ 24 января 2011

У меня есть этот UIScrollView с pagingEnabled, чтобы позволить пользователю страницу между некоторыми изображениями. Теперь я хочу позволить пользователю увеличить каждое из изображений. Как я могу это сделать? То, что у меня есть, теперь масштабирует мой UIScrollView от его источника, и мне нужно, чтобы оно увеличивало каждое изображение, а не отверстие UIScrollView.

Что у меня сейчас:

UIScrollView* containerView = [[UIScrollView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];

containerView.scrollEnabled = YES;
containerView.pagingEnabled = YES;

[containerView setMaximumZoomScale:2.0];
[containerView setDelegate:self];
self.view = containerView;

UIImage *imageOne = [UIImage imageNamed:image01];
UIImageView *viewOne = [[UIImageView alloc] initWithImage:imageOne];

viewOne.frame = CGRectMake(0, 44, 320, 480);
[containerView addSubview:viewOne];

UIImage *imageTwo = [UIImage imageNamed:image02];
UIImageView *viewTwo = [[UIImageView alloc] initWithImage:imageTwo];
viewTwo.frame = CGRectMake(320, 44, 320, 480);
[containerView addSubview:viewTwo];

UIImage *imageThree = [UIImage imageNamed:image03];
UIImageView *viewThree = [[UIImageView alloc] initWithImage:imageThree];
viewThree.frame = CGRectMake(640, 44, 320, 480);
[containerView addSubview:viewThree];

- (UIView *) viewForZoomingInScrollView:(UIScrollView *)containerView
{
    return containerView;
}

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 21 февраля 2011

Вы должны вернуть представление, содержащееся в вашем scrool.Поскольку у вас есть 3 UIImage, попробуйте с этим ...

в .ч

UIView *auxView;

в .м

...
[auxView addSubview:imageOne];
[auxView addSubview:imageTwo];
[auxView addSubview:imageThree];

[containerView addSubview:auxView];
}

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)containerView{
return auxView;   }

Я надеюсь, что это поможет вам

0 голосов
/ 01 октября 2014

Я думаю, вы имеете в виду, что хотите увеличить каждый UIImageView в отдельности, верно?

Я боролся с этой проблемой много недель, а затем решил написать класс для решения этой проблемы.
Вот мой репозиторий github этого класса: https://github.com/windmemory/PhotoCollectionView

Мое решение этой проблемы - создать один UIScrollView, содержащий каждый UIImageView, и затем добавить эти UIScrollView до containerView.

Если мы добавим все UIImageView к одному виду, то сделаем его масштабируемым, когда мы увеличим одну фотографию, все эти фотографии будут увеличены, тогда contentSize изменится соответственно.Как только contentSize будет изменен, он испортит все функции подкачки.Таким образом, лучший способ, который я придумал, это использовать UIScrollView, чтобы содержать UIImageView, а затем помещать каждые UIScrollView в containerView, это позволит вам увеличивать каждую фотографию отдельно, что не испортит всю страницувещь, которую вы создали.

Надеюсь, это поможет вам.

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