UIView大体分为“控件”和“视图”两类,二者均继承于UIView。UIView类的继承层次如图1所示。
![UIKit框架之UIView详解一](/public/kindedit/attached/image/20181210/20181210154316_95437.jpg)
图1 UIView的继承层次图
UIControl类是控件类,其子类有UIButton、UITextField和UISlider等。之所以称它们为“控件类”,是因为它们都有能力响应一些事件。为了查看这些事件,我们可以在Interface Builder中拖曳一个UIButton控件到设计界面,然后选中这个Button,单击右上角的圆箭头按钮,打开连接检查器,如图2所示。
![UIKit框架之UIView详解二](/public/kindedit/attached/image/20181210/20181210154405_41420.jpg)
图2 UIButton的事件
其中Sent Events栏中的内容就是UIButton相对应的高ji事件。UIControl类以外的视图没有这些高ji事件,这可以借助HelloWorld工程中的Label控件验证一下。选中UILabel控件,打开连接检查器,如图3所示。可以发现UILabel的连接检查器中没有Sent Events栏,即没有高ji事件,不可以响应高ji事件。
![UIKit框架之UIView详解三](/public/kindedit/attached/image/20181210/20181210154508_17693.jpg)
图3 UILabel没有高级事件
事实上,视图也可以响应事件,但这些事件比较低级,需要南昌APP开发人员自己处理。很多手势的开发都以这些低级事件为基础。