一些 UIView 中管理 Subview 常用的方法

3 篇文章 0 订阅


 

 一个 UIView 里面可以包含许多的 Subview(其他的 UIView),而这些 Subview 彼此之间是有所谓的阶层关系,这有点类似绘图软体中图层的概念,下面程式码示演示了几个在管理图层(Subview)上常用的方法,其程式码如下。

 

 首先是大家最常使用的新增和移除 Subview。

  • //将Subview从当前的UIView中移除   
  • [Subview removeFromSuperview];   
  •   
  • //替UIView增加一个Subview   
  • [UIView addSubview:Subview];  

 在 UIView 中将 Subview 往前或是往后移动一个图层,往前移动会覆盖住较后层的 Subview,而往后移动则会被较上层的 Subview 所覆盖。

  • //将Subview往前移动一个图层(与它的前一个图层对调位置)   
  • [UIView bringSubviewToFront:Subview];   
  •   
  • //将Subview往后移动一个图层(与它的后一个图层对调位置)   
  • [UIView sendSubviewToBack:Subview];  

 在 UIView 中使用索引 Index 交换两的 Subview 彼此的图层层级。

  • //交换两个图层   
  • [UIView exchangeSubviewAtIndex:indexA withSubviewAtIndex:indexB]; 

 使用 Subview 的变数名称取得它在 UIView 中的索引值(Index )。

  • //取得Index   
  • NSInteger index = [[UIView subviews] indexOfObject:Subview名称];   

 替 Subview 加上 NSInteger 的註记 (Tag),好让之后它们分辨彼此。

  • //加上註记   
  • [Subview setTag:NSInteger];   

 最后是取得 UIView 中所有的 Subview,呼叫此方法会传回一个 NSArray,并以由后往前的顺序列出这些 Subview,下图中是列出范例图片里 Root 中所有的 Subview。

  • //取的UIView下的所有Subview   
  • [UIView subviews]

 

addSubview和insertSubview的区别

addSubview 是将view加到所有层的最顶层

相当于将insertSubview的atIndex参数设置成view.subviews count

[view addSubview:oneview] == [view insertSubview:oneview atIndex:view.subviews count]

addSubview是加到最后

insertSubview是加到指定的位置


 

如果要移除一个 UIView 的所有子视图,SDK 里没有 remove all 之类的方法。可以用 for loop 循环调用 – removeFromSuperview 来移除

例如:

for(UIView *view in [self.view subviews]){   [view removefromsuperview]}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值