大家好,我需要在包含几个 uiimageviews 的 uiscrollview 中添加缩放。这是我的代码,但它无法正常工作
- (void)setupPage
{
scrollView.delegate = self;
[self.scrollView setBackgroundColor:[UIColor blackColor]];
[scrollView setCanCancelContentTouches:NO];
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollView.clipsToBounds = YES;
scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = YES;
NSUInteger nimages = 0;
CGFloat cx = 0;
for (; ; nimages++) {
//Maquette final_Print 2.png
NSString *imageName = [NSString stringWithFormat:@"rint %d.png", (nimages + 1)];
UIImage *image = [UIImage imageNamed:imageName];
if (image == nil) {
break;
}
imageView = [[UIImageView alloc] initWithImage:image];
[imageView setContentMode:UIViewContentModeScaleToFill];
CGRect rect = imageView.frame;
rect.size.height = 1004;
rect.size.width = 768;
rect.origin.x = ((scrollView.frame.size.width - 768) / 2) + cx;
rect.origin.y = ((scrollView.frame.size.height - 1004) / 2);
imageView.frame = rect;
[scrollView addSubview:imageView];
[imageView release];
cx += scrollView.frame.size.width;
}
[scrollView setContentSize:CGSizeMake(cx, 1004)];
scrollView.minimumZoomScale = scrollView.frame.size.width / 768;
scrollView.maximumZoomScale = 2.0;
[scrollView setZoomScale:scrollView.minimumZoomScale];
}
// 处理缩放的代码:
#pragma mark -
#pragma mark UIScrollView ZOOM
//- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
// imageView.frame = [self centeredFrameForScrollView:scrollView andUIView:imageView];;
//}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return imageView;
}
- (CGRect)centeredFrameForScrollView:(UIScrollView *)scroll andUIView:(UIView *)rView {
CGSize boundsSize = scroll.bounds.size;
CGRect frameToCenter = rView.frame;
// center horizontally
if (frameToCenter.size.width < boundsSize.width) {
frameToCenter.origin.x = (boundsSize.width - frameToCenter.size.width) / 2;
}
else {
frameToCenter.origin.x = 0;
}
// center vertically
if (frameToCenter.size.height < boundsSize.height) {
frameToCenter.origin.y = (boundsSize.height - frameToCenter.size.height) / 2;
}
else {
frameToCenter.origin.y = 0;
}
return frameToCenter;
}
当我尝试缩放时,它没有按预期工作。而且我不能向左或向右滑动...