ios 事件的传递
在众多的iOS应用App中,我们免不了要在上面进行各种操作,比如点击了某个button,点击了某个view,点击了某个textView,双击了一张图片另其放大,两个手指操作使图片缩放等等。当然了我所说的button,view,textView是对于开发者而言的,对外行来说并不明白这是什么,其关心的也只是做了相关的操作继而产生了相应的效果,那么… 你看了我写的这篇文章当然明白我想要表达的意思了,就是标题所立意的,事件的传递。
说这个问题之前我要先说另外一个问题,我们在iOS新手时就常听说的一个名词是“viewController的生命周期”,其生命周期中有好几个阶段我就不一一提及了,单单说两个,一是viewDidLoad 另一是viewWillAppear,那明白生命周期有什么用呢,点击了一个按钮之后弹出一个新的viewController,这个动作很简单,而且也很潇洒,当然了时间也很短,极短的时间内pop到了你想要看的界面,这个极短的过程中其新老界面都执行了生命周期中的某些个方法,你明白它的生命周期就可以在合适的方法内部写一些代码来执行你想要的操作。
同理,这就是为什么要明白iOS事件传递的原因了,准备要自己写写,突然百度了一下,看到一篇写的很详细的帖子,觉得自己写并不会更好,所以发了链接,想看的可以点开看看
https://www.jianshu.com/p/2e074db792ba
另:
里面写的很长看完看懂得费一些思量,抓住里面的关键点,比如继承自UIResponder的对象才可以进行事件的传递,事件传递的三大类UIApplication,UIViewController,UIView等等,之所以继承UIResponder的对象可以进行事件的传递是因为UIResponder提供了4个对象方法来处理触摸事件等等,这四个方法有点像scrollView的几个代理方法一样,都是抓取操作的某个时间点来做不同的事情,你看完这篇讲解还可以往下思考另外一个问题,一个类中的对象方法赋予了继承自这个类的对象的一些能力,同样代理也赋予了遵守了这个协议的类的一些能力,那么功能相似的这两种操作为什么设计者当初不求统一而分派两立呢?
不管学习什么,我始终认为在学习之前多想想为什么要这样,在学习中再想想,等你明白了就会知道了为什么这样设计,同时也有助于你形成好的编程思维。