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

四、隐式动画和显式动画

   隐式动画指的是:改变属性值而产生的默认的过渡动画(如background、cornerRadius等),不需要初始化任何类,系统自己处理的动画属性;用一个例子解释一下隐式动画:首先创建一个蓝色的方块,然后添加一个按钮,随机改变它的颜色。点击按钮,你会发现图层的颜色平滑过渡到一个新值,而不是跳变,这说明发生了一个隐式动画。
显式动画是指:自己创建一个动画对象并附加到layer上,如 CAAnimation、CABasicAnimation、CAKeyframeAnimation
 
五、UIView和CALayer的区别
  UIView 是 CALayer 的 delegate,UIView 可以响应事件,而 CALayer 则不能。
 
posted @ 2019-08-23 09:18  小妮子的奋斗时代  阅读(142)  评论(0编辑  收藏  举报