zoukankan      html  css  js  c++  java
  • 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];

        */

     

        

     
  • 相关阅读:
    docker-compose.yml(2)
    docker-compose.yml(3)
    docker-compose.yml(4)
    生产者&消费者.py
    工作机制.py
    2.5 webpack 进阶
    2.3 Gulp
    2.4 webpack + gulp 构建完整前端工作流
    2.2 webpack
    2.1 前端工程化概述
  • 原文地址:https://www.cnblogs.com/CLiOS/p/5281075.html
Copyright © 2011-2022 走看看