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文件的解析過程

相關文章
相關標籤/搜索