好的,我一整天都在努力解决这个问题,而且我已经非常接近了。我试图创建一种方法来查看多个scrollView / imageView嵌套对,允许放大图像。
当视图加载时,只有一个scrollView占据整个屏幕,但是当按下一个按钮时,我将第一个scrollView的宽度减半,并取消隐藏另一个(其中有一个嵌套的imageView)在它旁边)。因此,存在分割视图效果,理想情况下,用户将能够分别捏合和缩放每个图像。
所以除了单独的捏合和缩放部分外,我还有所有工作。无论我在屏幕上捏什么,只有第一个scrollView缩放。所以,即使我正在触摸另一个scrollView,它仍然只影响第一个。
我在IB中设置了它们,然后以这种方式在viewDidLoad中设置它们:
[scrollView setBackgroundColor:[UIColor blackColor]];
[scrollView setCanCancelContentTouches:NO];
scrollView.clipsToBounds = YES; // default is NO, we want to restrict drawing within our scrollview
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollView.minimumZoomScale = 1;
scrollView.maximumZoomScale = 5;
scrollView.delegate = self;
[scrollView setScrollEnabled:YES];
imageView3 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"monitor.JPG"]];
[scrollView addSubview:imageView3];
//[scrollView setFrame:CGRectMake(0, 0, 1024, 660)];
[scrollView1 setBackgroundColor:[UIColor blackColor]];
[scrollView1 setCanCancelContentTouches:NO];
scrollView1.clipsToBounds = YES; // default is NO, we want to restrict drawing within our scrollview
scrollView1.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollView1.minimumZoomScale = 1;
scrollView1.maximumZoomScale = 5;
scrollView1.delegate = self;
[scrollView1 setScrollEnabled:YES];
imageView31 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"monitor.JPG"]];
[scrollView1 addSubview:imageView31];
然后我隐藏并取消隐藏不同的scrollViews(我有40个取决于工具栏上的segmentedControl索引。我是朝着正确的方向前进吗?是否可以有两个可单独访问的scrollViews?
任何帮助都将不胜感激。
谢谢!
编辑:
好的,所以我通过并更新了clipToBunds位... DUH。它绝对让它看起来更好,但仍然没有解决问题。以下是我调用的代码,具体取决于所选索引:
-(void) pickedOne{
if(segment.selectedSegmentIndex == 0){
[scrollView setFrame:CGRectMake(0, 0, 1024, 660)];
[scrollView setContentSize:CGSizeMake(1024, 660)];
scrollView.hidden = NO;
scrollView1.hidden = YES;
scrollView2.hidden = YES;
scrollView3.hidden = YES;
}else if(segment.selectedSegmentIndex == 1){
[scrollView setFrame:CGRectMake(0, 0, 512, 660)];
scrollView.zoomScale = 1.0;
scrollView.hidden = NO;
[scrollView1 setFrame:CGRectMake(512, 0, 512, 660)];
scrollView1.zoomScale = 1.0;
scrollView1.hidden = NO;
scrollView2.hidden = YES;
scrollView3.hidden = YES;
}
这种方法有什么重大错误吗?
如果我捏缩放右侧滚动视图,它会使滚动视图变大,但(但不会增加scrollView2图像的大小)但是当你捏住内部时它会增加第一个scrollView图像的大小scrollViews ...奇怪
答案 0 :(得分:1)
scrollView.clipsToBounds = NO; // default is NO, we want to restrict drawing within our scrollview
这不是你想要的反面吗?将其设置为YES
限制将绘图限制在滚动视图中。
听起来像你没有调整scrollview的大小。您要调整其内容或图像视图吗?您可以发布点按按钮时调用的代码吗?