06-图片浏览器

图片浏览器

小案例简介

  • 接下来使用UIImageView、UILabel、UIButton实现一个综合小案例
  • 功能分析数组

  1. 点击箭头切换序号、图片、描述浏览器

  2. 若是是首张图片,左边箭头不能点击atom

  3. 若是是尾张图片,右边箭头不能点击orm

  • 步骤分析blog

  1. 搭建UI界面事件

  2. 监听按钮点击图片

  3. 切换序号、图片、描述get

掌握

  • 更换UIImageView的图片
  • 了解UIImageView的contentMode
  • 更换UILabel的文字 在storyboard中设置UILabel的自动换行和文字居中
  • NSArray和NSDictionary的简单使用
  • Plist文件的建立和读取
  • 属性的懒加载
  • viewDidLoad方法的使用
  • UIButton的多种状态

做业

  • 使用纯代码的方式重写图片浏览器小案例(不要拖控件)

UILabel的基本设置

  • 要想让UILabel自动换行,设置Lines为0便可
  • 让UILabel的文字居中显示it

UIButton的状态

  • normal(普通状态)
  1. 默认状况
  2. 对应的枚举常量:UIControlStateNormal
  • highlighted(高亮状态)
  1. 按钮被按下去的时候(手指还未松开)
  2. 对应的枚举常量:UIControlStateHighlighted
  • disabled(失效状态,不可用状态)
  • 若是enabled属性为NO,就是处于disable状态,表明按钮不能够被点击
  • 对应的枚举常量:UIControlStateDisabled

UIButton和UIImageView

  • 相同点:都能显示图片
  • 不一样点
  1. UIButton默认状况就能监听点击事件,而UIImageView默认状况下不能
  2. UIButton能够在不一样状态下显示不一样的图片
  3. UIButton既能显示文字,又能显示图片
  • 如何选择
  1. UIButton:须要显示图片,点击图片后须要作一些特定的操做
  2. UIImageView:仅仅须要显示图片,点击图片后不须要作任何事情

NSArray和NSDictionary的使用

  • 当图片内容很是多时,“根据index来设置内容”的代码就不具有扩展性,要常常改动
  • 为了改变现状,能够考虑讲图片数据线保存到一个数组中,数组中有序地放着不少字典,一个字典表明一张图片数据,包含了图片名、图片描述

       @property (strong, nonatomic) NSArray *images;io

  • 因为只须要初始化一次图片数据,所以放在get方法中初始化
  • 将属性放在get方法中初始化的方式,称为“懒加载”\”延迟加载”

什么是Plist文件

  • 直接将数据直接写在代码里面,不是一种合理的作法。若是数据常常改,就要常常翻开对应的代码进行修改,形成代码扩展性低
  • 所以,能够考虑将常常变的数据放在文件中进行存储,程序启动后从文件中读取最新的数据。若是要变更数据,直接修改数据文件便可,不用修改代码
  • 通常可使用属性列表文件存储NSArray或者NSDictionary之类的数据,这种属性列表文件的扩展名是plist,所以也成为“Plist文件”

建立Plist文件

解析Plist文件

  • 接下来经过代码来解析Plist文件中的数据
  1. 得到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;

  }

 

Plist文件的解析过程