UIView的图层关系
2015-08-05 15:15
190 查看
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]
以及大小。
一个 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]
相关文章推荐
- Android uiautomator gradle build system
- iOS 开发 UI 搭建心得(二)—— 善用 xib
- UIImageview 点击事件 UITapGestureRecognizer传值
- iOS培训-UI用户界面基础一界面组件创建
- NGUI EventDelegate 传递参数
- requireJs AMD规范
- IOS中的UINavigationController(导航控制器)
- IOS UITableView删除功能
- 为UIView任意角设置圆角
- POJ 2533 Longest Ordered Subsequence
- UITableView中关于cell里的按钮被点击时如何确定是哪一个cell
- Marquee Effect
- Intel Threading BuildingBlocks(Intel TBB)介绍
- UIView和layer的关系
- OS开发UI篇—xib的简单使用
- 获取UINavgationController的退出事件
- IOS第七天(6:UiTableView编辑模式, 拖动位置 ,滑动删除)
- 类QQ,微信,联系人列表搜索UISearchBar使用
- IOS第七天(5:UiTableView 汽车品牌,复杂模型分组展示,A-Z索要列表) (2015-08-05 14:03)
- IOS第七天(4:UiTableView 数据的显示优化重复实例和tableFooterView和tableHeaderView)