viewWithTag:的使用
viewWithTag
是如何获取到对应的subView的呢?

如图在view 上有按照代码顺序依次添加两个subView:subView1
和subView2
subView1上有按照代码顺序依次添加三个:subView1_1
、subView1_2
和subView1_3
subView2上有一个:subView2_1
subView1_1.tag = 11;
subView1_2.tag = 11;
当我们使用viewWithTag获取tag=11的控件的时候,获取到的是 subView1_1
subView1_3.tag = 13;
subView2.tag = 13;
当我们使用viewWithTag获取tag=13的控件的时候,获取到的是 subView1_3
总结:
(1)同一层级下根据 viewWithTag 获取 subView 的时候,是通过下标 index从小到大的顺序查找的,也就是位于下层的将首先被找到,及先被添加到 view 上的(addSubView:)的先被查到,下层优先
原则。
(2)对于不同层级的 subView,viewWithTag 获取的时候是遵循深度优先
的原则,首先会查找最下层的subView并且递归查询其subViews。
网友评论