IOS学习笔记(五)之视图的层次结构,查找,常用属性与清理学习
来源:互联网 发布:图像识别算法原理 编辑:程序博客网 时间:2024/05/29 02:14
IOS学习笔记(五)之视图的层次结构,查找,常用属性与清理学习(博客地址:http://blog.csdn.net/developer_jiangqq)
Author:hmjiangqq
Email:jiangqqlmj@163.com
(一):视图的层次结构
1.UIView层次结构可以理解为"视图树"-View Hierarchy
2.一个视图就是一个容器,当一个视图包含其他视图的时候,两个视图之间就建立了
一个父子复习。被包含的视图被称为"子视图(subview)",包含的视图称为“父视图或”
超视图(superview)"
3.从视觉上看,子视图隐藏了俯视图的内容,设置透明属性可以看到父视图的内容
4.每个父视图都有一个有序的数组存储着它的子视图,存储的顺序就会影响到每个子视图
的显示效果,比如:两个兄弟视图重叠在一起,后来被加入的视图就会出现在另外视图的上面
5.一个视图可以嵌入多个subview,但是只能有一个superview
视图的常用方法
当调用addSubView的时候,会对其进行保留,相当于retain了一个对象,当调用removeFromSuperView时候
会进行释放该对象,相当于release了该对象
基本的添加和删除子视图的方法
- (void)removeFromSuperview;- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;- (void)addSubview:(UIView *)view;- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;- (void)bringSubviewToFront:(UIView *)view;- (void)sendSubviewToBack:(UIView *)view;
实例代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; // Override point for customization after application launch. self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; UIView *view1=[[UIView alloc]initWithFrame:CGRectMake(60, 100, 200, 100)]; view1.backgroundColor=[UIColor redColor]; [self.window addSubview:view1]; [view1 release]; UIView *view2=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)]; view2.backgroundColor=[UIColor blueColor]; [self.window addSubview:view2]; [view2 release]; NSLog(@"view1 superview:%@",[view1 superview]); NSLog(@"view2 superview:%@",[view2 superview]); NSLog(@"self.window subViews:%d",[[self.window subviews]count]); return YES;}运行截图:
(二):视图的查找
1.UIView类中又一个tag属性,通过这个tag属性可以标示一个视图对象(整数)
2.获取的方法,viewWithTag:方法来检索标示过的子视图:
[注]:如果tag值不设置,默认的tag值为0;
设置和查找方法代码如下:
UIView *view3=[[UIView alloc]initWithFrame:CGRectMake(60, 250, 200, 100)]; view3.tag=100; view3.backgroundColor=[UIColor yellowColor]; [self.window addSubview:view3]; [view3 release]; NSLog(@"view3:%@",view3); //通过tag值查找view UIView *myView=[self.window viewWithTag:100]; myView.alpha=0.1; NSLog(@"myView:%@",myView); return YES;
运行截图:
(三):常用属性:
1.alpha //透明度
2.backgroundColor //背景颜色
3.subViews //子视图集合
4.hidden //是否隐藏
5.tag //标签纸
6.superview //父视图
7.multipleTouchEnabled //是否开启多点触摸
8.userInteractionEnabled //是否响应触摸事件
(四)自定义UIView
继承UIView,创建对象
(五)视图对象的清理
如果手动创建一个视图,分配了任何内存,存储了了任何对象的引用,都需要释放资源,
必须实现dealloc方法。当某个对象的引用计数为0,系统会调用其dealloc方法去释放对象资源
切记不要手动调用dealloc方法
-(void)dealloc{
//释放自定义对象
[super dealloc];
}
- IOS学习笔记(五)之视图的层次结构,查找,常用属性与清理学习
- IOS学习整理(一)视图层次结构与视图控制器
- IOS学习笔记(十二)之IOS开发之表视图(UITableView)的相关类,属性与表视图实现学习(二)
- IOS学习笔记(十二)之IOS开发之表视图(UITableView)的相关类,属性与表视图实现学习(二)
- ios学习笔记之UI篇(五):切换视图
- IOS学习笔记(十二)之IOS开发之表视图(UITableView)的讲解与使用(二)
- ios视图层次结构
- ios视图层次结构
- ios视图层次结构
- ios视图层次结构
- iOS视图层次结构
- IOS视图层次结构
- iOS视图层次结构,继承的关系
- iOS 的视图层次结构、继承关系及常用结构体探讨
- 机器学习学习笔记--卷积网络的层次结构
- JAVA学习笔记之四线程层次结构
- 大数据学习笔记之五 数据中心的三层结构
- CSharp学习笔记之五 结构
- ARM裸机开发-bootloader-汇编语言
- 网页打印
- Ubuntu 13.10中安装eclipse后菜单栏下拉失效
- vijos1059题解
- 蓝桥杯基础练习--数列特征
- IOS学习笔记(五)之视图的层次结构,查找,常用属性与清理学习
- PHP与MYSQL事务处理
- CSS hack
- 蓝桥杯基础练习--杨辉三角形
- Sejda -- split pdf bookmark
- vlc命令行: 转码 流化 推流
- 蓝桥杯基础练习--特殊的数字
- Notepad++ 16进制编辑功能
- vijos1062题解