04-自定义view和Xib
2015.7.12
上午
耦合性,解决代码重复,代码复用性,明白软件设计各种优缺点为何这样做
懒加载:(lazy)用到才加载,并且只创建一次
- 一般写在get方法里
Plist
模型(数据封装成的类)
- 解决重复代码(核心:解决重复key)
- 写错会报错
- 有提示
- 一般都会加上类前缀
自定义view
+面向对象设计原则
- 谁最清楚,就该属于谁
initWithFrame方法
- initWithFrame 会被init方法调用
initWithxxx…中得with的字母’w’一定要大写,不然会报错
instanceType
- 会检测真实类型与被赋值变量是否匹配(不匹配会有警告)
- 代表任意类型
- 只能用于返回值
一般类方法会对应一个对象方法。注意:此时类方法因为跟对象方法是重复的,所以,类方法只要调用对象方法就可以了
代码切记写死,所以一般构造方法都会调用self,绝对不会使用类名。因为类名会在继承后的子类中出现问题!
下午
- layoutSubviews 方法
- 必须先调用super layoutSubviews
- layoutSubviews方法什么时候会被调用
- 在第一次创建时候
- 在发生形状改变的时候,你懂的,更mfc那个差不多
Xib/nib
- xib 用custom class 来制定相关联(管理)的类
- 这个跟UIView -> UIViewControler 意义道理
- custom class指定的类,必须匹配xib中的最顶层控件(父控件)类型
- initWithCode 是“创建时”,所以不一定子控件已经创建好了
- awakeFromNib 是“创建后” 子控件全部、已经创建好了,所以一般都用这个方法的
- initWithCode awakeFromNib方法只有在xib\storyboard创建的才会调用
- initWithFrame 是代码创建的view都会调用initWithFrame
- 为了保证,不管代码创建的,或者xib\storyboard创建的都可以统一初始化,一般会把初始化封装到setup方法,然后awakeFromNib 和 initWithFrame 都来调用setup
- xib 用custom class 来制定相关联(管理)的类
MVC