你的位置:首页 > 操作系统

[操作系统]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添加到一个控件上.