原理
把UIImageView放到UIScrollView中 对UIImageView添加点击事件实现
具体代码
添加代理UIScrollViewDelegate
涉及的两个View
1 2
| @IBOutlet weak var scrollView: UIScrollView! @IBOutlet weak var showImageView: UIImageView!
|
添加事件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| func addEvent(){ self.scrollView.isMultipleTouchEnabled = true; self.scrollView.maximumZoomScale = 5.0; self.scrollView.minimumZoomScale = 1; self.scrollView.delegate = self; self.showImageView.isUserInteractionEnabled = true; let tapImgOnce = UITapGestureRecognizer.init(target: self, action: #selector(tapImgViewHandle(image:))) tapImgOnce.numberOfTapsRequired = 1; tapImgOnce.numberOfTouchesRequired = 1; self.showImageView.addGestureRecognizer(tapImgOnce) let tapImgTwice = UITapGestureRecognizer.init(target: self, action: #selector(tapImgViewHandleTwice(image:))) tapImgTwice.numberOfTapsRequired = 2; tapImgTwice.numberOfTouchesRequired = 1; self.showImageView.addGestureRecognizer(tapImgTwice) tapImgOnce.require(toFail: tapImgTwice); } @objc func tapImgViewHandle(image:UIImageView){ self.dismiss(animated: false, completion: nil) } @objc func tapImgViewHandleTwice(image:UIImageView){ if(self.scrollView.zoomScale > 1){ self.scrollView.setZoomScale(1, animated: true) }else{ self.scrollView.setZoomScale(3, animated: true) } } func viewForZooming(in scrollView: UIScrollView) -> UIView? { return self.showImageView; }
|