1

我有以下场景: - 图像(作为相机图片) - 图像嵌入在 UIImageView 中 - 图像视图嵌入在 UIScrollView

我可以成功缩放和平移。我现在想要做的是当用户放大图像的一部分时,能够将该缩放视为 UIImageView 中唯一的东西。我希望他们能够再次缩小,所以我不想丢失原始图像(这会抛出裁剪我看到的图像的答案)。

现在发生的事情是我可以进行缩放,但是缩放后的图像被推到 0,0,就好像我放大了图像的左上角(而不是用户缩放的地方)。

我在scrollViewDidEndZooming 中没有太多内容,但这就是我假设代码要去的地方。我正在做类似的事情:

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
{
    CGFloat zoomReciprocal = 1.0f / scale;

    CGPoint offset = CGPointMake(imageHolder.image.size.width * ((1.0f - zoomReciprocal) / 2.0f), imageHolder.image.size.height * ((1.0f - zoomReciprocal) / 2.0f));
    CGRect croppedRect = CGRectMake(offset.x, offset.y, imageHolder.image.size.width * zoomReciprocal, imageHolder.image.size.height * zoomReciprocal);

    //and have tried things like:
    //[imageHolder.image drawInRect:croppedRect];
    //scrollView.contentSize = [self maximumUsableFrame].size;
    //scrollView.contentOffset = offset;
}

我想要做的基本上是能够放大图像的一部分,并让其余方法认为这是当前图像。任何想法或指示?

4

0 回答 0