如何在不放大视图的情况下缩放视图?
How to pinch to zoom a view without making the view bigger?
这是我目前拥有的:
func handlePinching(recognizer : UIPinchGestureRecognizer) {
self.layer.transform = CATransform3DMakeAffineTransform(CGAffineTransformScale(self.transform, recognizer.scale, recognizer.scale));
recognizer.scale = 1.0;
}
为此使用 self.view.transform
也会使它变大。我想把它放大"internally"(我真的不知道怎么解释)
所以我不是 100% 肯定理解这个问题,但我想我明白了。
例如,您想在不缩放 UI(导航栏、按钮等)的其他元素的情况下缩放图像,对吗?
所以我猜你是在 viewController 中的示例,这意味着,当你更改 self.view
的比例时,你将缩放所有内容。您必须在要放大的特定视图上应用比例尺。
在下面的示例中,要放大图像,图像位于 UIImageView 内,而此 imageView 是 self.view
的子视图。您只需在此 imageView 上应用变换。
此外,我认为您对如何缩放有点困惑,考虑到您要缩放的视图是 imageView
,您只需要执行
imageView.transform = CGAffineTransformMakeScale(recognizer.scale,recognizer.scale)
我希望这能回答你的问题,如果有什么不清楚的地方,请告诉我。
这是我目前拥有的:
func handlePinching(recognizer : UIPinchGestureRecognizer) {
self.layer.transform = CATransform3DMakeAffineTransform(CGAffineTransformScale(self.transform, recognizer.scale, recognizer.scale));
recognizer.scale = 1.0;
}
为此使用 self.view.transform
也会使它变大。我想把它放大"internally"(我真的不知道怎么解释)
所以我不是 100% 肯定理解这个问题,但我想我明白了。
例如,您想在不缩放 UI(导航栏、按钮等)的其他元素的情况下缩放图像,对吗?
所以我猜你是在 viewController 中的示例,这意味着,当你更改 self.view
的比例时,你将缩放所有内容。您必须在要放大的特定视图上应用比例尺。
在下面的示例中,要放大图像,图像位于 UIImageView 内,而此 imageView 是 self.view
的子视图。您只需在此 imageView 上应用变换。
此外,我认为您对如何缩放有点困惑,考虑到您要缩放的视图是 imageView
,您只需要执行
imageView.transform = CGAffineTransformMakeScale(recognizer.scale,recognizer.scale)
我希望这能回答你的问题,如果有什么不清楚的地方,请告诉我。