UI基础-day04-Shopping-08Xib-03Tag值方式加载数据

UI基础-day02-Shopping-01搭建商城基本框架
UI基础-day02-Shopping-02添加一个商品
UI基础-day02-Shopping-03九宫格排序
UI基础-day02-Shopping-04优化添加和删除功能
UI基础-day02-Shopping-05加载数据
UI基础-day02-Shopping-06懒加载-1基础
UI基础-day03-Shopping-06懒加载-2Plist文件读取
UI基础-day03-Shopping-06懒加载-3字典转模型
UI基础-day04-Shopping-07自定义控件-01设置子控件的frame
UI基础-day04-Shopping-07自定义控件-02加载数据
UI基础-day04-Shopping-07自定义控件-03初始化和类方法
UI基础-day04-Shopping-08Xib-01基本使用
UI基础-day04-Shopping-08Xib-02简单的加载数据

需求

给任意指定的控件赋值,

  1. 即使是多个相同控件,都能精准的找到指定控件,赋值!

代码

......
通过给控件设置Tag,然后通过Tag值获取到控件,给对应控件赋值
shopView - 是实例化"Xib文件"后的对象
shopM - 是"字典转模型"的模型
UIImageView * shopImg = [shopView viewWithTag:100];
shopImg.image = [UIImage imageNamed:shopM.icon];
UILabel * labTemp = [shopView viewWithTag:200];
labTemp.text = shopM.name;
......

给控件指定Tag值

分析 [shopView viewWithTag: 20] 方法

  1. 先拿20跟shopView匹配,
    如果shopView的tag值是20,则匹配成功!
    如果shopView的tag值不是20,则匹配不成功!
  2. 父控件匹配不成功的情况下,
    则会去匹配shopView的所有子控件的Tag值
    所以,viewWithTag本质还是遍历.
  3. viewWithTag只要匹配到一个控件的Tag值为20,则匹配成功,直接返回.

缺陷:
就是如果有多个控件的Tag值为20,
那么,通过viewWithTag方法获取的控件,可能并不是你所需要的控件.

  1. 原则上还是遍历, 会消耗很多性能!
  2. 有可能没有获取到自己想要的控件.
  3. 控制器太过于关心, Xib控件的细节!
    如果更改Xib控件的Tag值后,此代码并不能在不修改的情况下,获取对应的控件!

你可能感兴趣的:(UI基础-day04-Shopping-08Xib-03Tag值方式加载数据)