UIButton与UITableView的层级结构
这个问题很常见了吧,高级IOS工程师比较常见的一道面试题。 其实对于平时没事喜欢看头文件的攻城狮来说,这个问题还是很简单的。
首先来看下UIButton,进入头文件,很明显的能看到UIButton->UIControl->UIView->UIResponder->NSObject 好,说到这有个问题顺便说一下,有的控件你会发现有addTarget方法可以使用,而且很方便,还有一些控件是没有的,那么究竟addTarget方法到底是谁提供给我们的?或者说addTarget那些控件可以使用? 头文件里能看到一切,让我们先进入UIButton的头文件 搜索addTarget 然而并没有! 继续进入UIControl 搜索,发现了addTarget 。好,可能是UIControl 提供的这个方法,验证之后确定了这个说法,也就是说所有继承自UIControl的控件都有addTarget,也只有继承自UIControl的控件 才有 addTarget。以后这类问题不会再单独说明了,如果:UITextView没有addTarget方法,而UITextField方法却有这个方法,不做单独说明。
UITableView:UITableView ->UIScrollView -> UIView -> UIResponder->NSObject 这样看来UITableView 的很多问题也显而易见了,UITableView滑动,弹簧效果,等等。。看到层级结构一目瞭眼。
刚开始做开始的IOS攻城狮,遇到问题第一时间会去百度,然后得到各种各样的答案,依次尝试,这样不仅效率很低,而且最后也不一定能得到自己想要的。OK,个人觉得去看头文件比百度什么的靠谱多了,老外的注解写的还是很白话的,多去头文件看看,不仅找方法,找属性,也能看到老外们的代码风格,能写出一套贴切苹果官方的代码风格,或许你会提高很多。好了,今天就说到这。

浙公网安备 33010602011771号