0

我目前的要求是UIImageView使用放大功能显示大(3000 * 3000)图像。我遇到了一些帖子,说CATiledLayer这是要走的路。

我已经下载了 Apple 示例代码“LargeImageDownSizing”,其中CATiledLayer可以使用放大缩小功能显示使用大图像。我的问题是,在这个示例代码中,我必须将放大限制在一定水平,目前它是无限的。

对此的任何帮助都会有很大帮助。

4

2 回答 2

0

我没有仔细查看 Apple 的示例代码,但我想只需maximumZoomScale在 UIScrollView 上设置属性就可以了

于 2013-08-07T09:14:02.387 回答
0

// 试试这个.. 使用 UIScrollview 缩放图像的最佳选择

imageScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, screenRect.size.width, screenRect.size.height)];
        imageScrollView.maximumZoomScale = 2.50;
        imageScrollView.minimumZoomScale = 1.00;
        imageScrollView.clipsToBounds = YES;
        imageScrollView.delegate = self;
        [self addSubview:imageScrollView];

imageView_temp = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, screenRect.size.width, screenRect.size.height)];
        imageView_temp.contentMode = UIViewContentModeScaleToFill;
        imageView_temp.backgroundColor = [UIColor clearColor];
        [imageView_temp setUserInteractionEnabled:YES];
        originalImagePos = imageView_temp.center;
        [imageScrollView addSubview:imageView_temp];
        imageScrollView.contentSize = CGSizeMake(imageView_temp.frame.size.width, imageView_temp.frame.size.height);


- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {

    return imageView_temp;
}

-(void)resetImageZoom {

    NSLog(@"Resetting any image zoom");

    CGAffineTransform transform = CGAffineTransformMakeScale(1.0, 1.0);

    imageView_temp.transform = transform;

    [imageScrollView setContentSize:CGSizeZero];

    imageView_temp.center = originalImagePos;
}
于 2013-08-07T09:33:06.017 回答