美文网首页
UIScrollView双击放大

UIScrollView双击放大

作者: Bearger | 来源:发表于2017-03-24 20:37 被阅读165次
//
//  ViewController.swift
//  SwiftAppLab
//
//  Created by Bear on 2017/2/4.
//  Copyright © 2017年 BeargerHunter. All rights reserved.
//

import UIKit
import Foundation
import SnapKit

class ViewController: UIViewController{
    
    lazy var scrollView = { () -> UIScrollView in
        let temp = UIScrollView()
        temp.showsVerticalScrollIndicator = false
        temp.showsHorizontalScrollIndicator = false
        temp.maximumZoomScale = 3
        return temp
    }()
    
    
    lazy var imageView = { () -> UIImageView in
        let imageView = UIImageView(image: #imageLiteral(resourceName: "test1.jpg"))
        imageView.isUserInteractionEnabled = true

        return imageView
    }()
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.view.backgroundColor = UIColor.white
        self.title = "Bear"
        
        scrollView.frame = self.view.frame
        self.view.addSubview(scrollView)
        scrollView.backgroundColor = UIColor.blue
        scrollView.delegate = self
        
        scrollView.addSubview(imageView)
        
        let doubleTapGestureRecognizer = UITapGestureRecognizer.init(target: self, action: #selector(handleTapGesture(_:)))
        doubleTapGestureRecognizer.numberOfTapsRequired = 2
        imageView.addGestureRecognizer(doubleTapGestureRecognizer)

    }
    
    func handleTapGesture(_ gesture:UIGestureRecognizer) {
        
        if scrollView.zoomScale > 1.0 {
            scrollView.setZoomScale(1.0, animated: true)
        }else{
            let touchPoint = gesture.location(in: imageView)
            let newZoomScale = scrollView.maximumZoomScale
            let xsize = self.view.frame.width/newZoomScale
            let ysize = self.view.frame.height/newZoomScale
            scrollView.zoom(to: CGRect.init(x:touchPoint.x - xsize/2, y:touchPoint.y - ysize/2, width:xsize, height:ysize), animated: true)
        }
    }
}

//Important:查看对应文档~
extension ViewController :UIScrollViewDelegate
{
    func viewForZooming(in scrollView: UIScrollView) -> UIView? {
        return self.imageView
    }
}


相关文章

网友评论

      本文标题:UIScrollView双击放大

      本文链接:https://www.haomeiwen.com/subject/pqqqottx.html