UI基础-day02-Shopping-05加载数据

UI基础-day02-Shopping-01搭建商城基本框架
UI基础-day02-Shopping-02添加一个商品
UI基础-day02-Shopping-03九宫格排序
UI基础-day02-Shopping-04优化添加和删除功能

效果图

需求

  1. 点击'➕'按钮,显示多个不同的商品.
    • 数组方式显示,多个不同商品
    • 数组+字典的方式显示多个不同商品

代码

  1. 数组方式,显示多个不同商品.
-(void)btnAddViewClick{
......
NSUInteger shopIndex = self.shopView.subviews.count; //当前商品的索引
// 设置数据源
NSArray *iconsArray =@[@"danjianbao",@"liantiaobao",@"qianbao",@"shoutibao",@"shuangjianbao",@"xiekuabao"];
NSArray *nameArray = @[@"单肩包",@"链条包",@"钱包",@"手提包",@"双肩包",@"斜挎包"];

// 从数组中,通过对应的下标,读取对应的数据(图片,文字)
UIImage * imgTemp = [UIImage imageNamed:iconsArray[shopIndex]];//数组方式赋值
UIImageView * imgViewTemp = [[UIImageView alloc]init];
imgViewTemp.image = imgTemp;

UILabel *lblDescribe = [[UILabel alloc]init];
lblDescribe.text = nameArray[shopIndex];
......    
}

缺陷:

  • 每次点击按钮,都会创建一次NSArray,占用空间.(解决方案:1.NSArray定义为全局. 2.使用另一种方式)
  • 使用NSArray不方便扩展.(明明是一个东西,非要用两个NSArray来存放,容易出错)
  1. 数组+字典的方式显示多个不同商品
// 设置数据源
- (void)viewDidLoad {
    [super viewDidLoad];
    self.shopDataArray =@[
                          @{
                              @"icon":@"danjianbao",
                              @"name":@"单肩包"
                              },
                        ......
                          @{
                              @"icon":@"xiekuabao",
                              @"name":@"斜挎包"
                              }
                          ];
}
  1. 优点: viewDidLoad里面的方法,在控制器加载完成后,只调用一次,所以shopDataArray数据放此处.优点:避免重复创建-销毁,降低性能.
  2. 缺点: 虽然做到只加载一次,但是没有做到,'有用的时候,再加载'.如要实现,点击'➕'号,才需要加载数据(shopDataArray).而不是界面一加载,就将数据加载到内存,占用空间.
    viewDidLoad是界面加载完成,里面的方法就加载进去了.
-(void)btnAddButtonClick{
NSUInteger shopIndex = self.shopView.subviews.count;//当前商品索引
 //数组+字典方式,显示数据(图片)
NSDictionary *dicShop = self.shopDataArray[shopIndex];//数组下标--获取-->字典
UIImage * imgTemp = [UIImage imageNamed:dicShop[@"icon"]];//字典Key--获取-->Val

//数组+字典方式,显示数据(文字)
[btnTemp setTitle:dicShop[@"name"] forState:UIControlStateNormal];
......
}

注意:

你可能感兴趣的:(UI基础-day02-Shopping-05加载数据)