我有以下情况: - 图像(作为相机图片) - 图像嵌入在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;
}
我想要做的基本上是能够放大图像的一部分,并让其余方法认为是当前图像。任何想法或指针?