OC 基础知识巩固
投顾项目做到如今,我发现很多问题都是因为我基础太差而进展缓慢,基础太差出现问题的时候不知道该怎么排查,所以一定要好好把基础巩固好。
一、继承
1、继承不仅继承实例变量和属性、实例方法,还会继承类方法,所以类方法也是可以重写的。
2、在OC中,类方法可以和对象方法重名,子类中不可以定义跟父类同名的成员变量。
3、私有成员变量不能在子类中访问,但是子类中已经存在这个成员变量了,只是子类没有权限访问。所以也不能定义同名的变量。
4、受保护的成员变量在本类和子类中都可以访问,不能在外部访问。
5、在实现(@implementation)里面也可以定义实例变量,但是它是私有的,不论用什么修饰符修饰它都是私有的,即外部和子类都不能访问。
二、@property
1、@property是编译器指令,编译器会自动生成setter、getter方法
2、@synthesize 也是编译器指令,可以生成一个私有的成员变量,同时有setter、getter方法
三、UITableView
UITableView是项目中最常用的控件了,因为基础差也问过别人一些很简单很基础的问题,这种问题现在想想自己都脸红,问别人这种基础的问题,自己几斤几两完全暴露无疑。好了,现在来总结一下:
1、plain 模式下的tableView footerView是会悬浮在界面上的,而不是紧跟在cell下面,所以要根据实际情况要么设高度为0要么设为uiview()
2、reloadData 方法仅仅是会刷新tableView 上cell上的内容,不会重置整个tableView,所以tableview如果有重头布局一遍的效果的话一定不是 reloadData 导致的,只可能是代码里哪里又重新 init了tableView
3、如果有手势不响应,可以看看是不是手势超出了 view 的frame
四、隐式动画和显式动画
CAAnimation、CABasicAnimation、CAKeyframeAnimation
。