一、UIButton的状态
•normal(普通状态)
Ø 默认情况
Ø 对应的枚举常量:UIControlStateNormal
•highlighted(高亮状态)
Ø 按钮被按下去的时候(手指还未松开)
Ø 对应的枚举常量:UIControlStateHighlighted
•disabled(失效状态,不可用状态)
Ø 如果enabled属性为NO,就是处于disable状态,代表按钮不可以被点击
Ø 对应的枚举常量:UIControlStateDisabled
二、UIButton和UIImageView
•相同点:都能显示图片
•不同点
Ø UIButton默认情况就能监听点击事件,而UIImageView默认情况下不能
Ø UIButton可以在不同状态下显示不同的图片
Ø UIButton既能显示文字,又能显示图片
•如何选择
Ø UIButton:需要显示图片,点击图片后需要做一些特定的操作
Ø UIImageView:仅仅需要显示图片,点击图片后不需要做任何事情
三、NSArray和NSDictionary的使用
•当图片内容非常多时,“根据index来设置内容”的代码就不具备扩展性,要经常改动
•为了改变现状,可以考虑讲图片数据线保存到一个数组中,数组中有序地放着很多字典,一个字典代表一张图片数据,包含了图片名、图片描述
@property (strong, nonatomic) NSArray *images;
•由于只需要初始化一次图片数据,因此放在get方法中初始化
•将属性放在get方法中初始化的方式,称为“懒加载”\”延迟加载”
四、什么是Plist文件
•直接将数据直接写在代码里面,不是一种合理的做法。如果数据经常改,就要经常翻开对应的代码进行修改,造成代码扩展性低
•因此,可以考虑将经常变的数据放在文件中进行存储,程序启动后从文件中读取最新的数据。如果要变动数据,直接修改数据文件即可,不用修改代码
•一般可以使用属性列表文件存储NSArray或者NSDictionary之类的数据,这种属性列表文件的扩展名是plist,因此也成为“Plist文件”
五、解析Plist文件
•接下来通过代码来解析Plist文件中的数据
Ø 获得Plist文件的全路径
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:@"imageData" ofType:@"plist"];
Ø 加载plist文件
_images = [NSArray arrayWithContentsOfFile:path];
- (NSArray *)images
{
if (_images == nil) {
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:@"imageData" ofType:@"plist"];
_images = [NSArray arrayWithContentsOfFile:path];
}
return _images;
}