我有这个带有pagingEnabled的UIScrollView,让用户在一些图像之间进行分页。 现在我想让用户放大每个图像。我怎么做?我现在有什么从它的原点放大我的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;
}
提前致谢
答案 0 :(得分:2)
您必须返回滚动条中包含的视图。因为你有3个UIImage,试试这个......
在.h
UIView *auxView;
在.m
...
[auxView addSubview:imageOne];
[auxView addSubview:imageTwo];
[auxView addSubview:imageThree];
[containerView addSubview:auxView];
}
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)containerView{
return auxView; }
我希望这可以帮到你
答案 1 :(得分:0)
我认为您的意思是想要逐个缩放每个UIImageView
,对吧?
我几周来一直在努力解决这个问题,然后我决定写一堂课来解决这个问题
以下是本课程的github回购:https://github.com/windmemory/PhotoCollectionView
我对此问题的解决方案是创建单个UIScrollView
以包含每个UIImageView
,然后将这些UIScrollView
添加到containerView
。
如果我们将所有UIImageView
添加到单个视图中,然后将其缩放,当我们缩放一张照片时,所有这些照片都会缩放,然后contentSize
会相应更改。一旦contentSize
被更改,它将搞乱所有的分页事物。因此,我提出的最佳方式是使用UIScrollView
来包含UIImageView
,然后将每个UIScrollView
放入containerView
,这样您就可以分别缩放每张照片,不会搞乱你设置的所有分页内容。
希望这可以帮助你。