自定义view 是为了:在系统无法满足我们队界面的需求的时候程序员手动搭建界面.
self :
1. self 在哪个类中, 就表示该类
2. 谁调用的方法, 就表示谁
下面举一个例子说明: 通过加载plist文件,将字典转模型,再通过自定义view来解决我们的问题
首先 : 要把plist文件中的数据读取出来通过字典转模型,再懒加载的方式
部分逻辑 :
------ 字典转模型
模型文件 : 描述数据
1. 先创建一个model类 继承自 NSObject
2. 看字典中有几个key值, 要在model类中创建几个属性,
属性名称 要和 字典里的key值保持一致 [必须的]
属性的类型 是 和 字典中的value 保持一致 [非必须的]
3. 通过懒加载 加载数据
在 ViewController.m 文件中:
紧接着在AppView中要做的事情:
注意: 属性如果没有必要就必要放在头文件中, 不安全, 代码封装性考虑
自定View 的写法 就是重写下面这个方法同时在这个方法里面赋值 等操作
//
重写实例化方法, 外部在调用的时候,使用哪个实例化方法,就重写哪个
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame])
if (self = [super initWithFrame:frame])
在这里面进行赋值操作---> 根据具体需求自己定
}
注意: 在set方法中要给属性赋值
// 重写set方法
- (void)setAppModel:(AppModel *)appModel {
// 赋值
_appModel = appModel;
// 为控件进行赋值
_iconImageView.image = [UIImage imageNamed:appModel.icon];
_nameLabel.text = appModel.name;
}
自定View 的写法 就是重写下面这个方法同时在这个方法里面赋值 等操作
//
重写实例化方法, 外部在调用的时候,使用哪个实例化方法,就重写哪个
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame])
if (self = [super initWithFrame:frame])
}