iOS开发基础-图片切换(2)之懒加载
延续:iOS开发基础-图片切换(1),对(1)里面的代码进行改善。
在 ViewController 类中添加新的数组属性:
@property (nonatomic, strong) NSArray *infoArray; //存放图片信息
通过 self.infoArray 的 getter 方法对其实现初始化(懒加载),其中代码中的 _infoArray 不能用 self.infoArray 替换:
1 //infoArray的get方法 2 - (NSArray *)infoArray { 3 NSLog(@"需要获取图片信息数组"); 4 //只实例化一次 5 if (_infoArray == nil) { 6 NSLog(@"实例化数组"); 7 NSDictionary *dict0 = @{@"name":@"beauty0", @"desc":@"美女1号"}; 8 NSDictionary *dict1 = @{@"name":@"beauty1", @"desc":@"美女2号"}; 9 NSDictionary *dict2 = @{@"name":@"beauty2", @"desc":@"美女3号"}; 10 NSDictionary *dict3 = @{@"name":@"beauty3", @"desc":@"美女4号"}; 11 NSDictionary *dict4 = @{@"name":@"beauty4", @"desc":@"美女5号"}; 12 _infoArray = @[dict0, dict1, dict2, dict3, dict4]; 13 } 14 return _infoArray; 15 }
修改 change 方法如下:
1 //视图内容更新与显示 2 - (void)change { 3 //初始化两个标签和一个图片 4 self.imageIcon.image = [UIImage imageNamed:self.infoArray[self.i][@"name"]]; 5 self.lastLabel.text = self.infoArray[self.i][@"desc"]; 6 [self.firstLabel setText:[NSString stringWithFormat:@"%d/5", self.i+1]]; 7 8 self.leftButton.enabled = (self.i != 0); //显示第1张图片时,左翻按钮失效 9 self.rightButton.enabled = (self.i != 4); //显示第5张图片时,右翻按钮失效 10 }
参考博客:iOS开发UI篇—简单的浏览器查看程序