首页 > 代码库 > [iOS基础控件 - 3.3] 图片浏览器

[iOS基础控件 - 3.3] 图片浏览器

需求:
1.显示当前图片序号/总图片数
2.显示图片
3.上一张图片、下一张图片转换
4.显示图片描述
 
 
A.数据的加载方式
1.逐个加载、处理
2.使用数组、字典分离数据和逻辑
3.延迟加载
     将初始化放在getter初始化,当需要的数据不存在才初始化
4.使用plist
     存储数据在外部文件,剥离数据和逻辑代码
     不要使用带”info”的名字,会跟系统文件混淆
 
a.使用NSBundle获得手机全路径
    
 1 if (_imageData =http://www.mamicode.com/= nil) { 2         // 初始化数据 3         // File: 全路径 4         // NSBoundle: 一个NSBoundle代表一个文件夹 5         // 利用mainBundle就可以访问手机里面的任何资源 6         NSBundle *bundle = [NSBundle mainBundle]; 7         8         // 获得imageData.plist的全路径 9         NSString *path = [bundle pathForResource:@"imageDate" ofType:@"plist"];10         _imageData =http://www.mamicode.com/ [NSArray arrayWithContentsOfFile:path];11     }
 
b. plist文件的解析过程
逐层解析、封装
 
 
c.转换图片
 1 #pragma mark 转换图片 2 - (void) changeData { 3     // 1.设置当前图片的序号标题 4     self.noLabel.text = [NSString stringWithFormat:@"%d/%d", self.index + 1, self.imageData.count]; 5      6     // 2.取出当前的图片数据 7     NSDictionary *currentImageData =http://www.mamicode.com/ self.imageData[self.index]; 8      9     // 3.设置图片10     self.iconView.image = [UIImage imageNamed:currentImageData[IconKey]];11     12     // 4.设置图片描述13     self.descLabel.text = currentImageData[DescKey];14     15     // 5.改变按钮状态16     self.previousButton.enabled = (self.index != 0);17     self.nextButton.enabled = (self.index != self.imageData.count - 1);18 }19 20 #pragma mark 上一张21 - (IBAction)previous {22     self.index--;23     [self changeData];24 }25 26 #pragma mark 下一张27 - (IBAction)next {28     self.index++;29     [self changeData];30 }31 @end
 
 

[iOS基础控件 - 3.3] 图片浏览器