我有UIScrollView包含3 * UIImageView,每个UIImageView都有一个图像。 我使用的代码:
scrollView.delegate = self;
[self.scrollView setBackgroundColor:[UIColor blackColor]];
[scrollView setCanCancelContentTouches:NO];
scrollView.maximumZoomScale = 4.0;
scrollView.minimumZoomScale = 0.75;
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollView.clipsToBounds = YES;
scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = YES;
NSUInteger nimages = 0;
CGFloat cx = 0;
for (; ; nimages++) {
NSString *imageName = [NSString stringWithFormat:@"%d.jpg", (nimages + 1)];
UIImage *image = [UIImage imageNamed:imageName];
if (image == nil) {
break;
}
imageView = [[UIImageView alloc] initWithImage:image];
CGRect rect = imageView.frame;
rect.size.height = image.size.height;
rect.size.width = image.size.width;
rect.origin.x = ((scrollView.frame.size.width - image.size.width) / 2) + cx;
rect.origin.y = ((scrollView.frame.size.height - image.size.height) / 2);
[imageView setFrame:CGRectMake(cx, 0, self.view.frame.size.width, self.view.frame.size.height)];
[scrollView addSubview:imageView];
[imageView release];
cx += scrollView.frame.size.width;
}
[scrollView setContentSize:CGSizeMake(cx, [scrollView bounds].size.height)];
如何使用多点触控使ScrollView变焦? 我用了这段代码:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return imageView;
}
但它无法正常工作,图像重叠,因为ScrollView包含多个图像。
我该如何解决? 感谢
答案 0 :(得分:2)
不要直接将图像视图添加到scrollview,而是这样做:
分别为每个UIImageView创建一个新的UIScrollView对象,并将框架设置为与图像视图相同。将图像视图作为子视图添加到scrollview。请记住,这些滚动视图对象仅用于缩放图像,因此设置zoomScale,minimumZoomScale和maximumZoomScale,同时设置滚动委托。在委托控制器中:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return [scrollView.subViews objectAtIndex:0];
}
然后,将所有滚动视图对象添加到您在代码中使用的滚动视图。此滚动视图仅用于滚动上面创建的子滚动视图。
知道了吗?
答案 1 :(得分:0)
您可以将PinchGesture用于图片视图...... 不需要使用3个滚动视图。
答案 2 :(得分:0)
尝试这3张图片:
**.h Controller:**
@interface MyViewController : UIViewController{
IBOutlet UIScrollView *scrollView;
UIImageView *imageView;
}
@property (nonatomic, retain) UIScrollView *scrollView;
@property (nonatomic, retain) UIImageView *imageView;
.m控制器:
@synthesize scrollView, imageView;
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return imageView;
}
- (void)viewDidLoad
{
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"YourImageName.png"]];
self.imageView = tempImageView;
[tempImageView release];
scrollView.maximumZoomScale = 3.0;
scrollView.minimumZoomScale = 0.6;
scrollView.clipsToBounds = YES;
scrollView.delegate = self;
[scrollView addSubview:imageView];
}
这段代码对我有用:)