zoukankan      html  css  js  c++  java
  • iOS UI进阶01

    01-项目中常见文件

    一.Xcode5和Xcode6区别

    Xcode5

    Frameworks文件夹:存放iOS中常见的框架

    pch文件

    Xcode6

    没有Frameworks,会自动导入常见的框架

    没有pch

    LaunchScreen.xib: 设置项目启动的界面

    二.info.plist文件

    1.Bundle name : app名称,项目通常使用英文,app名称显示中文

    2.Bundle identifier : app标识符 上传AppStore和推送

    3.Bundle versions string, short app版本号

    三.pch文件

    pch作用:

    1.存放一些公用的宏

    2.存放一些公用的头文件

    3.自定义Log

    // ...表示宏里面的可变参数
    // __VA_ARGS__表示函数里面的可变参数
    
    #ifdef DEBUG // 表示当前调试阶段
    
    #define XMGLog(...)   NSLog(__VA_ARGS__)
    
    #else // 发布阶段
    
    #define XMGLog(...)
    
    #endif
    

    pch原理:就是把pch文件中的所有内容拷贝到所有文件的头部

    注意点: pch文件一定要注意做些判断,判断下当前是否是OC文件,如果是就 导入OC的代码

    所有的OC文件都会定义__OBJC__这个宏,苹果定义

    02-UIApplication

    一.常识 UIApplication对象是应用程序的象征

    每一个应用都有自己的UIApplication对象,而且是单例的

    通过[UIApplication sharedApplication]可以获得这个单例对象

    一个iOS程序启动后创建的第一个对象就是UIApplication对象

    利用UIApplication对象,能进行一些应用级别的操作

    1.应用程序图片的提醒数字

    2.联网状态

    3.设置状态栏

    4.打开资源,电话,网页,发短信

    二.单例

    1.整个应用程序只有一份内存.

    2.重写alloc方法,只分配一次.

    3.提供share方法,获取单例对象.

    4.使用静态全局变量保存单例对象.

    03-UIApplication代理

    一.常识

    1.在app受到干扰时,会产生一些系统事件,这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件

    2.delegate可处理的事件包括:

    2.1应用程序的生命周期事件(如程序启动和关闭)

    2.2系统事件(如来电)

    2.3内存警告

    04-程序启动原理

    一.首先找到程序入口,执行main函数

    main -> UIApplicationMain

    二.UIApplicationMain底层做事情

    1.创建UIApplication对象

    2.创建UIApplication的代理对象,而且给UIApplication对象代理属性赋值

    3.开启主运行循环,作用接收事件,让程序一直运行

    4.加载info.plist,判断下有木有指定main.storyboard,如果指定就会去加载

    三.函数介绍:

    NSStringFromClass:根据一个类名生成一个类名字符串

    NSClassFromString: 根据一个类名字符串生成一个类名

    四.思想,为什么使用NSStringFromClass NSStringFromClass:输入类名有提示,避免输入错误

    04-UIWindow

    一.什么时候创建

    1.加载info.plist,判断有没有指定main.storyboard,指定了main.storyboard,就会去加载main.storyboard,执行main.storyboard的时候创建.

    二.main.storyboard步骤

    2.1创建窗口

    2.2加载控制器

    2.3设置窗口的根控制器,显示窗口

    三.手动创建窗口

    1.什么时候创建?

    1.在加载info.plist文件之后,程序启动才完成,启动完成之后,就要显示窗口,因此在程序启动完成的时候创建窗口.

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // 窗口显示的注意点:
        // 1.一定要强引用
        // 2.控件要想显示出来,必须要有尺寸
    
        // 1.创建窗口
        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    
        // 2.创建根控制器,在设置窗口的根控制器
        UIViewController *vc = [[UIViewController alloc] init];
    
        // 设置窗口的根控制器,底层会自动把根控制器的view添加到窗口上,并且让控制器的view有旋转功能
        self.window.rootViewController = vc;
    
        // 3.显示窗口
        // makeKeyAndVisible:让窗口成为应用程序的主窗口,并且显示窗口
        [self.window makeKeyAndVisible];
    
        return YES;
    }
    

    四.窗口补充

    1.应用程序中那些控件属于窗口,1.状态栏 2.键盘

    2.窗口层级关系 UIWindowLevelAlert > UIWindowLevelStatusBar > UIWindowLevelNormal

    设置窗口的层级,层级谁大就显示在最外面

    3.UITextField显示键盘

    注意点:如果一个键盘想要弹出来,必须把textField添加到一个控件上.

  • 相关阅读:
    Sum of Medians
    MINSUB
    Girls Love 233
    How Many Answers Are Wrong
    Sorting It All Out
    Cube Stacking
    Boolean Expressions
    表达式求值
    #1301 : 筑地市场
    用seaborn对数据可视化
  • 原文地址:https://www.cnblogs.com/liujiaoxian/p/4728541.html
Copyright © 2011-2022 走看看