如何在预定义的矩形中显示图像的缩放部分?
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.
的详细信息了解不多,因此它们将提供更多提示
- UIScrollView 可以帮助您 in/out 缩放图像,您可以 "lock" 缩放到具有 contentSize、contentOffset、zoomScale 等属性的新区域。
- CALayer 的 contentsRect 属性 很有用,因为它仅使用您提供的图像的一部分作为图层的背景图像,受提供的 CGRect
约束
我正在尝试开发一个照片应用程序,当用户在其中滑动图像时,图像的特定部分(预定义的矩形区域)会放大并缩放以适合屏幕的尺寸,并在随后的滑动中其他(预定义)部分图像以类似方式放大。
而且到图像其他部分的过渡应该是无缝的。
我对 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.
的详细信息了解不多,因此它们将提供更多提示- UIScrollView 可以帮助您 in/out 缩放图像,您可以 "lock" 缩放到具有 contentSize、contentOffset、zoomScale 等属性的新区域。
- CALayer 的 contentsRect 属性 很有用,因为它仅使用您提供的图像的一部分作为图层的背景图像,受提供的 CGRect 约束