UIView常用方法

  建立父子关系

    UIView * greenView = [[UIView alloc] init];

    建立父子关系的同时,这个addSubview内部还干了什么其他事情? 会在父亲视图中,保存一个子视图的强指针

    [baseView addSubview:greenView];

     // greenView.frame = baseView.bounds;(从addsubview中可得)

    greenView.backgroundColor = [UIColor greenColor];

    self.greenView = greenView;

    使用tag作为视图的临时标记,方便在父亲对象中直接找到该子视图

    greenView.tag = 10;

 

这两个方法都是有由 系统自动调用

调用了父子addsubview方法之后就会调用,并且,会将新的父控件对象,作为参数,传递进来,那么在该方法中,就可以使用父亲对象的一些属性作为参考

- (void)willMoveToSuperview:(UIView *)newSuperview

{

    NSLog(@"%@",NSStringFromSelector(_cmd));

   设置自己的Frame与父亲组件完全重合

    self.frame = newSuperview.bounds;    

}

这个方法,在子视图,已经完成添加,显示之后会调用

- (void)didMoveToSuperview

{

    NSLog(@"%@",NSStringFromSelector(_cmd));

}

- (void)didAddSubview:(UIView *)subview

{

    完成添加之后调用

}

- (void)willRemoveSubview:(UIView *)subview

{

    执行了removeFromSuperView 即将删除子控件的时候调用,并且会把即将删除的子控件对象作为参数传递进来

}



 

  插入一个视图

 [self.baseView insertSubview:yellowView atIndex:0];

  把新添加的视图,放到某一个视图的后面

   [self.baseView insertSubview:yellowView belowSubview:greenView];

  把新添加的视图,放到某一个视图的前面

   [self.baseView insertSubview:<#(UIView *)#> aboveSubview:<#(UIView *)#>]

 



   把某一个视图放到最上层显示

    [self.baseView bringSubviewToFront:self.greenView];

    

    把某一个视图,挪到最后面

    [self.baseView sendSubviewToBack:self.yellowView];

      解除父子关系,removeFromSuperview

      子控件自己与父亲解除关系  [self.greenView removeFromSuperview];

     父亲控件与子控件解除父子关系

    /*

    //1.获得子控件

     //数组中保存对象的指针,默认是对象的强指针,所以每次调用addSubView方法,都会将该对象的强指针保存到subviews数组中,掉removeFromSuperview方法,会将自己保存在父亲subViews数组中的强指针移除,如果外界再没有强指针指向的话,就会被系统回收

    NSArray * subViews = [self.baseView subviews]; //获得被自己管理的所有子控件对象

    for(UIView * tmpView in subViews)

    {

      2.取出每一个子视图,并且与父亲解除父子管理关系

        [tmpView removeFromSuperview];

    }

    */

    

    /*

    //通过viewWithTag 找到具体的一个子视图

    //这种方式,不见在实际的开发中过多的使用,因为用数字作为标记,意义不是很明确,而且容易忘记

    UIView * greenView = [self.baseView viewWithTag:10];

    [greenView removeFromSuperview];

 

    */

 

 

    

 

posted on 2016-03-15 20:42  风过无痕CL  阅读(153)  评论(0编辑  收藏  举报

导航