zoukankan      html  css  js  c++  java
  • UIView 详解

      本文介绍的全是代码手写,无 SB 控制器的使用

      UIView表示屏幕上的一块矩形区域,它在App中占有绝对重要的地位,因为IOS中几乎所有可视化控件都是UIView的子类。负责渲染区域的内容,并且响应该区域内发生的触摸事件

      那么, UIView 的主要功能有哪些呢?

      1.管理矩形区域里的内容

      2.处理矩形区域内的事件

      3.子视图的管理

      4.动画

      当然,继承与 UIView 的子类也有这个功能;

      图1就是视图的内层次

    图1

      UIView 的基本属性:

      frame和center都是相对于父视图的,bounds是相对于自身的

      frame   是CGRect  frame的origin是相对于父视图的左上角原点(0,0)的位置,改变视图的frame会改变center

      center  是CGPoint  指的就是整个视图的中心点,改变视图的center也会改变frame

      bounds 是CGRect  是告诉子视图本视图的原点位置(通俗的说就是,子视图的frame的origin与父视图的bounds的origin的差,就是子视图相对于父视图左上角的位置,如果结果为负,则子视图在父视图外)

      addSubView 的属性  就是把其他的控件添加到发出这个消息的 View 身上。

      UIView 有许多子类 通过图1我们不难看出来,有许多的子类(UIWindow,UIButton,UILabel,UIScrollView,UITableView...)

      首先是 UIWindow 看名字就能知道,这是个窗口,介绍一个 控件就是先要介绍他的初始化 一般他的初始化是在 APPDelegate中的

      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions这个代理方法中

      下面就是他的初始化

        //初始化
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        //设置 UIWindow 的背景色
        self.window.backgroundColor = [UIColor whiteColor];
        //显示
        [self.window makeKeyAndVisible];

    这样我们就建立了一个 UIWindow 

    补充

    程序启动流程

    1:
    程序的启动流程
    // 首先 main函数(作为程序入口)
    //  1 创建应⽤用程序(UIApplication)实例
    //  2 创建应⽤用程序代理(Application)实例 不能够把所有的代码写在MAIN函数里 可以写代码在Application里 体现封装的特性
    //  3 建⽴立事件循环(runloop:死循环,不断检测程序运⾏行状态,是否被触摸、晃动等)
    2:
    ①:
    - (void)applicationWillResignActive:(UIApplication *)application {
        NSLog(@"程序将要退出活跃状态");
    }
    ②:
    - (void)applicationDidEnterBackground:(UIApplication *)application {
        NSLog(@"程序已经进入后台");
    }
    ③:
    - (void)applicationWillEnterForeground:(UIApplication *)application {
        NSLog(@"程序将要进入前台");
    }
    ④:
    - (void)applicationDidBecomeActive:(UIApplication *)application {
        NSLog(@"程序已经变成活跃状态");
    }
    ⑤:
    - (void)applicationWillTerminate:(UIApplication *)application {
        NSLog(@"程序将要终结"); 
    }
    ⑥:
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        NSLog(@"已经完成启动");
    }
  • 相关阅读:
    sql注入-原理&防御
    vulnhub靶场之AI-WEB1.0渗透记录
    python -m http.server 搭建一个简易web下载服务器
    渗透测试工具-sqlmap
    OSI七层模型
    LAXCUS大数据操作系统3.03版本发布,欢迎使用试用
    松耦合和紧耦合的架构设计、性能对比
    Laxcus大数据操作系统2.0(5)- 第二章 数据组织
    从AlphaGo谈通用型人工智能设计
    基于深度推理、自编程、大数据的通用人工智能
  • 原文地址:https://www.cnblogs.com/yxfBlogs/p/4964936.html
Copyright © 2011-2022 走看看