首页 > 代码库 > 【iOS开发-46】利用UIButton和UIImageView的区别分辨哪些控件有addTarget监听事件这个方法

【iOS开发-46】利用UIButton和UIImageView的区别分辨哪些控件有addTarget监听事件这个方法

(1)UIButton和UIImageView的相同点

都能显示图片。


(2)UIButton和UIImageView的不同点

——前者不仅能显示图片还能监听事件(就是有addtarget方法)

——前者不仅能显示图片还能显示两张图片(就是setImage和setBackgroundImage两个方法)

——前者不仅能显示图片还能显示文字(就是setTitle方法)


(3)使用场合

——如果仅仅是显示一个图片没其他花头,那就用UIImageView

——如果有其他,那么……

因为如果仅仅用于显示图片,UIButton控件相比于UIImageView控件会更加耗内存一些,毕竟UIButton功能多嘛,就像包一样,虽然是个空包,但是包本身就很大,那么肯定会相对重一些。


(4)深层次原因。

——UIButton继承自UIControl,UIControl继承自UIView

——UIImageView直接继承自UIView


(5)总结

——继承自UIControl的控件都有addTarget方法,因为这个方法是UIControl的,继承自它,当然这个方法也继承过来了,实际上UIButton调用这个方法时是调用它父类也就是UIControl的。

——如果要看一个控件是否支持事件监听,那么久CMD+点击,看看它是否继承自UIControl,比如UISlider。

【iOS开发-46】利用UIButton和UIImageView的区别分辨哪些控件有addTarget监听事件这个方法