快速缩放视图控制器

Akh*_*air 2 viewcontroller ios swift

我正在创建一个 iOS 应用程序 (swift),其中我在视图控制器中有多个标签。我没有使用任何滚动视图。我需要在捏合手势上缩放视图控制器。我知道我已经找到了带有滚动视图的解决方案,但我不想在我的视图控制器中实现 scrollView。任何帮助,将不胜感激!谢谢你。

更新:

我在视图控制器中实现了一个滚动视图。我在滚动视图中添加了一个视图,该视图包含一些标签,但我现在面临的问题是:

  1. 缩放不会保持静止。也就是说,只要我松开手指,滚动视图就会自动缩放到原来的样子。

  2. 当视图控制器处于原始状态时,应用程序崩溃。

这是我的代码:

@IBOutlet weak var scrollView: UIScrollView!

@IBOutlet var viewThis: UIView!

override func viewDidLoad() {

    super.viewDidLoad()

    scrollView.delegate = self

    //let gesture = UIPinchGestureRecognizer(target: self, action: #selector(pinchAction(sender:)))
    //self.view.addGestureRecognizer(gesture)

    // Do any additional setup after loading the view.

    let scrollViewFrame = scrollView.frame

    let scaleWidth = scrollViewFrame.size.width / scrollView.contentSize.width

    let scaleHeight = scrollViewFrame.size.height / scrollView.contentSize.height

    let minScale = min(scaleWidth, scaleHeight);

    scrollView.minimumZoomScale = minScale

    scrollView.maximumZoomScale = 1.0

    scrollView.zoomScale = minScale;
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

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

    return viewThis
}
Run Code Online (Sandbox Code Playgroud)

Akh*_*air 5

感谢@YunCHEN 帮助我解决这个问题。他让我知道代码中发生了什么。我遇到了一个问题,即在缩小时,我的应用程序曾经崩溃,因为与视图宽度和高度相比,它超出了限制。如果将来有人发现同样的问题,我已经更新了答案。

第 1 步:在视图控制器中添加一个 scrollView。

第 2 步:在 scrollView 上添加一个视图。

第 3 步:在此视图上添加对象库中的所有项目/对象。

第四步:在代码中将scrollView和view绑定到视图控制器上。还要添加一个 UIScrollViewDelegate。

第 5 步:按照以下步骤操作。

这是代码:

@IBOutlet weak var scrollView: UIScrollView!

@IBOutlet var viewThis: UIView!

override func viewDidLoad() {

    super.viewDidLoad()

    scrollView.delegate = self

    scrollView.minimumZoomScale = 1.0;

    scrollView.maximumZoomScale = 3.0

    scrollView.zoomScale = 1.0
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

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

    return viewThis
}
Run Code Online (Sandbox Code Playgroud)

再次感谢@YunCHEN 帮助我!