UIView的图层关系

UIView* myView =[[ UIView alloc]initWithFrame:CGRectMake(0.0,0.0,200.0,400.0)];//这里创建了一块画布,定义了相对于父窗口的位置, 以及大小。  
一个 UIView 里面可以包含许多的 Subview(其他的 UIView),而这些 Subview 彼此之间是有所谓的阶层关系,这有点类似绘图软体中图层的概念,下面程式码示演示了几个在管理图层(Subview)上常用的方法,其程式码如下。
 
UIWindow
UIWindow继承自UIView,关于这一点可能有点逻辑障碍,画框怎么继承自画布呢?不要过于去专牛角尖,画框的形状不就是跟画布一样吗?拿一块画布然后用一些方法把它加强,是不是可以当一个画框用呢?这也是为什么 一个view可以直接加到另一个view上去的原因了。
看一下系统的初始化过程(在application didFinishLauchingWithOptions里面):

UIwindow *mWindow = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];  
mWindow.backgroundColor = [UIColor grayColor];//给window设置一个背景色  
首先是大家最常使用的新增和移除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] 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值