1、frame和约束的关系,frame的原理
在iOS中,每个控件都是继承于UIView的,都会有视图的属性存在,控制这个视图的位置就有Frame和Bounds两个属性
frame指的是:该view在父view坐标系统中的位置和大小。(参照点是父亲的坐标系统)
bounds指的是:该view在本身坐标系统中 的位置和大小。(参照点是本身坐标系统)
2、scrollview的原理
在滚动过程当中,其实是在修改原点坐标,当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器,假如在计时器到点后,没有发生手指移动事件,那么,scroll view发送tracking events到被点击的subview假如在计时器到点前,发生了移动事件,那么 scroll view 取消tracking自己发生滚动
3、循环引用
NSTimer经常会被作为某个类的成员变量,而NSTimer初始化时要指定self为target,容易造成循环引用。 另一方面,若timer一直处于validate的状态,则其引用计数将始终大于0
4、数据持久化
5、如何让播放器横屏
6、一个连续数组,中间丢了一个数,怎么知道丢失的哪个
7、uitableview去除偏移量
8、layer圆角 左上右下
9、APP签名流程
10、runtime执行过程
11、动态库静态库
12、字符串去重
13、点击响应事件
14、oc类怎么执行
1.当程序启动时,就会加载项目中所有的类,而且加载后会调用每个类的+load方法,只会调用一次;
2.当第一次使用某个类时,就会调用当前类的+initialize方法;
3.先加载父类,再加载子类(先调用父类的+load方法,再调用子类的+load方法,最后调用分类的+load方法),先初始化父类,再初始化子类(先调用父类的+initialize方法,再调用子类的+initialize方法)。
4.注意:在初始化的时候,如果在分类中重写了+initialize方法,则会覆盖掉父类的。
5.重写+initialize方法可以监听类的使用情况。
首先从硬盘load程序代码到内存。
其次操作系统找到程序入口开始执行。