圖片瀏覽器
小案例簡介
- 接下來使用UIImageView、UILabel、UIButton實現一個綜合小案例
-
功能分析數組
-
點擊箭頭切換序號、圖片、描述瀏覽器
-
若是是首張圖片,左邊箭頭不能點擊atom
-
若是是尾張圖片,右邊箭頭不能點擊orm
-
搭建UI界面事件
-
監聽按鈕點擊圖片
-
切換序號、圖片、描述get
掌握
- 更換UIImageView的圖片
- 瞭解UIImageView的contentMode
- 更換UILabel的文字 在storyboard中設置UILabel的自動換行和文字居中
- NSArray和NSDictionary的簡單使用
- Plist文件的建立和讀取
- 屬性的懶加載
- viewDidLoad方法的使用
- UIButton的多種狀態
做業
- 使用純代碼的方式重寫圖片瀏覽器小案例(不要拖控件)
UILabel的基本設置
- 要想讓UILabel自動換行,設置Lines爲0便可
-
讓UILabel的文字居中顯示it
UIButton的狀態
- 默認狀況
- 對應的枚舉常量:UIControlStateNormal
- 按鈕被按下去的時候(手指還未鬆開)
- 對應的枚舉常量:UIControlStateHighlighted
- disabled(失效狀態,不可用狀態)
- 若是enabled屬性爲NO,就是處於disable狀態,表明按鈕不能夠被點擊
- 對應的枚舉常量:UIControlStateDisabled
UIButton和UIImageView
- UIButton默認狀況就能監聽點擊事件,而UIImageView默認狀況下不能
- UIButton能夠在不一樣狀態下顯示不一樣的圖片
- UIButton既能顯示文字,又能顯示圖片
- UIButton:須要顯示圖片,點擊圖片後須要作一些特定的操做
- UIImageView:僅僅須要顯示圖片,點擊圖片後不須要作任何事情
NSArray和NSDictionary的使用
- 當圖片內容很是多時,「根據index來設置內容」的代碼就不具有擴展性,要常常改動
- 爲了改變現狀,能夠考慮講圖片數據線保存到一個數組中,數組中有序地放着不少字典,一個字典表明一張圖片數據,包含了圖片名、圖片描述
@property (strong, nonatomic) NSArray *images;io
- 因爲只須要初始化一次圖片數據,所以放在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;
}
Plist文件的解析過程