首页 > 其他 > 详细

IOS学习笔记(5)之视图的层次结构,查找,常用属性与清理学习

时间:2014-02-22 06:15:52      阅读:321      评论:0      收藏:0      [点我收藏+]

      IOS学习笔记(5)之视图的层次结构,查找,常用属性与清理学习(博客地址: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;

}
运行截图:

bubuko.com,布布扣


(二):视图的查找

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;

运行截图:

bubuko.com,布布扣

(三):常用属性:

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学习笔记(5)之视图的层次结构,查找,常用属性与清理学习

原文:http://blog.csdn.net/developer_jiangqq/article/details/19614939

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!