[Swift通天遁地]三、手势与图表-(3)通过捏合手势放大和缩小图像视图
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10210612.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
本文将演示通过捏合手势,实现图片的放大和缩小。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
现在开始编写代码,实现通过捏合手势,实现图片的放大和缩小。
1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 9 //首先创建一个矩形区域,作为图像视图的显示区域 10 let rect = CGRect(x: 0, y: 80, width: 320, height: 320) 11 //根据该显示区域,初始化一个图像视图 12 let imageView = UIImageView(frame: rect) 13 14 //从项目中读取一张图片资源 15 let image = UIImage(named: "Hand") 16 //由图像视图负责图像的显示 17 imageView.image = image 18 19 //设置图像视图的交互属性为真, 20 //使图像视图可以接收触摸事件 21 imageView.isUserInteractionEnabled = true 22 //最后将图像视图添加到当前视图控制器的根视图 23 self.view.addSubview(imageView) 24 25 //初始化一个捏合手势,并给手势绑定触发事件 26 let guesture = UIPinchGestureRecognizer(target: self, 27 action:#selector(ViewController.pinchImage(_:))) 28 //将捏合手势添加到图像视图 29 imageView.addGestureRecognizer(guesture) 30 } 31 32 //添加一个方法,作为捏合手势的回调方法 33 func pinchImage(_ recognizer:UIPinchGestureRecognizer) 34 { 35 //根据捏合手势识别器的缩放比例,调整图像视图的缩放比例。 36 recognizer.view?.transform = (recognizer.view?.transform.scaledBy(x: recognizer.scale, 37 y: recognizer.scale))! 38 //恢复捏合手势识别器的初始比例, 39 //使每次缩放都从百分之百的比例进行。 40 recognizer.scale = 1; 41 } 42 43 override func didReceiveMemoryWarning() { 44 super.didReceiveMemoryWarning() 45 // Dispose of any resources that can be recreated. 46 } 47 }