• UI学习笔记---第二天


    程序的执行流程

    一.自定义视图

    自定义UILebal-UITextField视图

    ⾃定义视图:系统标准UI之外,⾃己组合而出的新的视图。

    实际开发中,我们还需⾃定义视图。积累⾃己的代码库。⽅便开发。 ⾃己封装的视图,能像系统UI控件一样,⽤于别的项目中,能⼤大降 低开发成本,提⾼开发效率。

    自定义视图步骤

    根据需求的不同,⾃定义视图继承的类也有所不同。⼀般⾃自定义的视图会继承于UIView。以下是⾃定义视图的要点:

    1、创建⼀个UIView子类

    2、在类的初始化方法中添加子视图

    3、类的.h⽂文件提供一些接口(方法),便于外界操作子视图

     高质量代码特点:可复用,可移植,精炼等  自定义视图使用了一种设计模式--组合设计模式   iOS新控件往往都是由已有控件组合而成

    二.iOS程序启动流程

    main函数是程序入口

    任何⼀个程序,无论是基于Mac OS还是iOS,程序都是从main.m文

    件的main函数开始执行的。

    int main(int argc, char * argv[])

    {

        @autoreleasepool {

            return UIApplicationMain(argc, argv, nil,

                                     NSStringFromClass([AppDelegate class]));

        }

    }

    执⾏UIApplicationMain函数时做了跳转,转到了AppDelete中 
     UIApplicationMain 

    UIApplicationMain在程序⼊口函数main函数中调⽤,主要实现了3个功能:

    创建应用程序(UIApplication)实例

    创建应⽤程序代理实例

    建⽴事件循环(runloop:死循环,不断检测程序运⾏状态,是否被触 摸、晃动等)

     UIApplicationMain  剖析

    int UIApplicationMain (

                           int argc,

                           char *argv[],

                           NSString *principalClassName,

                           NSString *delegateClassName

                           );

    1、principalClassName:应用程序对象的类名(UIApplication或其⼦子类)

    2、delegateClassName:应⽤程序delegate的类名。(任何接受了 UIApplicationDelegate的类)

    UIApplicationMain根据上述两个类名创建应⽤程序实例、应⽤程序代理实例。

    然后建⽴事件循环(runloop),检测程序的各种事件(程序开始启动,接收到触摸等)

    应用程序代理

    应⽤程序代理,主要检测应用程序的状态并做出相应的处理。

    应⽤程序的状态有很多,比如:程序启动、进⼊活跃状态、进到后台、内存警告、收到远程消息等等

    任何接受了UIApplicationDelegate协议的对象都可以成为应用程序 代理。

    ⼀旦应用程序的某种状态触发,就会执⾏相应的代理方法

    UIApplicationDelegate

    UIWindow

    UIWindow作为应用程序的窗⼝,在应⽤程序启动的时候就要加载,

    各种UI界面都是借助window来呈现的。 UIWindow在创建的时候,应该和屏幕一样大。

    通过[UIScreen mainScreen].bounds可以获得屏幕⼤小。

    [self.window makeKeyAndVisible];//让window变的可视,即显⽰ window

  • 相关阅读:
    计算机网络基础:TCP运输连接管理(三次握手 + 四次挥手)
    Zookeeper集群及配置
    Maven安装及配置
    SpringMVC拦截器+Spring自定义注解实现权限验证
    Spring之AOP配置
    设置Google浏览器不缓存JS
    数据加密之AES
    SpringMVC配置多个自定义拦截器
    利用Zookeeper实现分布式锁
    数据加密之RSA
  • 原文地址:https://www.cnblogs.com/limicheng/p/3836629.html
Copyright © 2020-2023  润新知