如何在预定义的矩形中显示图像的缩放部分?

How to show a zoomed part of an image in a predefined rectangle?

我正在尝试开发一个照片应用程序,当用户在其中滑动图像时,图像的特定部分(预定义的矩形区域)会放大并缩放以适合屏幕的尺寸,并在随后的滑动中其他(预定义)部分图像以类似方式放大。

而且到图像其他部分的过渡应该是无缝的。

我对 Quartz Core 框架不是很熟悉。我应该从哪里开始?

编辑:

为了纵横比适合图像的缩放部分,我这样做了:

if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft) {
    [UIView animateWithDuration:1.0 animations:^{
        self.myScrollView.frame = CGRectMake((self.view.bounds.size.width - zoomWidth) / 2, (self.view.bounds.size.height - zoomHeight) / 2, zoomWidth, zoomHeight);
        [self.myScrollView zoomToRect:CGRectMake(10, 10, zoomWidth, zoomHeight) animated:NO];
    }];
}

我认为您可能不需要使用 Quartz Core(用于自定义绘图)。我想到了两种实现您的案例的方法。由于我们对 case/architecture.

的详细信息了解不多,因此它们将提供更多提示
  1. UIScrollView 可以帮助您 in/out 缩放图像,您可以 "lock" 缩放到具有 contentSize、contentOffset、zoomScale 等属性的新区域。
  2. CALayer 的 contentsRect 属性 很有用,因为它仅使用您提供的图像的一部分作为图层的背景图像,受提供的 CGRect
  3. 约束