【问题标题】:Animating a zoomScale on UIScrollView with Swift使用 Swift 在 UIScrollView 上为 zoomScale 设置动画
【发布时间】:2017-08-09 01:41:50
【问题描述】:

iOS 应用程序相对较新,而且速度很快,所以我对如何继续操作有点迷茫。

基本上,我有一个 UIImageView,我可以通过捏合来缩放/滚动,因为我的 UIImageView 在 UIScrollView 中,但我想在 UIImage 上添加双击以放大。

我可以放大(现在只需将 zoomScale 设置为 3.0),但我希望有一个平滑的过渡。我确实看到了 zoom(to:, animated:) 方法,但我不太确定如何放大到视图的中心。

无论如何,这就是我目前所拥有的。

我已经创建了 tapGestureRecognizer,并将其分配给 UIImageView

 let tapGesture =  UITapGestureRecognizer(target: self, action: #selector(tapImageViewGesture))        
    self.Image1.isUserInteractionEnabled = true
    self.Image1.addGestureRecognizer(tapGesture)

以下是执行缩放的功能

func tapImageViewGesture(sender: UITapGestureRecognizer) {
    print("Touched")
    self.pinchZoomScroll1.zoomScale = 3.0

}

有没有一种简单的方法可以让我获得某种平滑的放大动画?还是应该改用缩放功能,因为它已经支持动画?

谢谢!!

【问题讨论】:

  • 你试过self.pinchZoomScroll1.setZoomScale(3.0, animated: true)吗?
  • 那行得通,我一定忽略了这个功能。谢谢! (如果你把答案放在下面,我会接受的。
  • 请自己写一个答案。我通常只在我可以在我的环境中确认时才发布答案。

标签: ios swift animation uiscrollview uiimageview


【解决方案1】:

您可以使用此设置设置动画为真:

self.pinchZoomScroll1.setZoomScale(3.0, animated: true)

或者你也可以通过设置scrollViewminimumScale和max scale来使用scrollView delegate func:

 pinchZoomScroll1.minimumZoomScale = 1.0
 pinchZoomScroll1.maximumZoomScale = 6.0 

func viewForZooming(in scrollView: UIScrollView) -> UIView? {

return Image1
}

【讨论】:

  • +1 表示第一部分 (setZoomScale),这是实际答案,并且在 Swift 5/Xcode 12.4 中仍然以相同的方式工作。我不确定第二部分如何适用于该问题,因为它只是解释了如何设置图像视图以进行滚动,但没有解释如何执行要求的“带动画滚动”部分操作的另一种方法(他说“捏放大”已经有效,所以他必须已经在使用委托了)。
猜你喜欢
  • 1970-01-01
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多