iOS编程入门

1.iOS概述

iOS编程入门_第1张图片
屏幕快照 2017-04-21 下午1.58.54.png
iOS编程入门_第2张图片
20150625181147536.png

说明:Core OS和Core Service提供了底层支持,包括文件访问、网络协议、低级数据类型等。Media提供了基本绘图和音视频的支持,包括OpenGL、Quartz、Core Audio和Core Animation等。Cocoa Touch包括了开发使用的大部分API,主要由Foundation(文件访问、网络操作、数据和容器类型)和UIKit(UI控件、控制器等)两个部分构成。在进行App开发时,应该由上到下使用这些技术层次,越上层的API封装得越好,开发越方便,但能自己发挥的东西越少。

iOS编程入门_第3张图片
屏幕快照 2017-04-21 下午2.00.26.png

UIKit继承结构:

iOS编程入门_第4张图片
20150625180421434.jpeg

iOS编程入门_第5张图片
739863-8d637d15e234f3ec.jpg

实现App开发中的用户界面首先要从UIResponder及其子类开始研究,当然整个过程会覆盖整个UIKit框架,比如UIColor(颜色)、UIEvent(事件)、UIFont(字体)、UIGestureRecognizer(手势识别)、UIImage(图像)、UIScreen(屏幕)等诸多内容

2.iOS开发入门

iOS编程入门_第6张图片
屏幕快照 2017-04-21 下午2.01.45.png

熟悉Xcode:

iOS编程入门_第7张图片
20150701190639241.png

iOS编程入门_第8张图片
屏幕快照 2017-04-21 下午2.02.35.png

Xcode常用功能和快捷键:

iOS编程入门_第9张图片
屏幕快照 2017-04-21 下午2.03.12.png

3.第一个iOS应用

iOS编程入门_第10张图片
屏幕快照 2017-04-21 下午2.03.38.png
#import 
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

说明:UIApplicationMain方法的四个参数,其中前两个是main方法的命令行参数,第三个参数表是UIApplication类或其子类的名字,UIApplication对象会启动一个事件监听的循环监听各种事件,然后通过委托的方式处理这些事件,而第四个参数正好是一个应用程序委托类的名字。

AppDelegate类的代码如下所示:
头文件

#import 

@interface AppDelegate : UIResponder 

@property (strong, nonatomic) UIWindow *window;

@end

源文件

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 应用程序加载完成
    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application {
    // 应用即将置于后台
}

- (void)applicationDidEnterBackground:(UIApplication *)application {
    // 应用已经置于后台
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
    // 应用即将置于前台
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // 应用已经进入前台
}

- (void)applicationWillTerminate:(UIApplication *)application {
    // 应用即将终止
}

@end

也就是说,我们整个应用程序的执行流程和生命周期应该是下面这组图所示的情况。
**应用程序加载到前台: **

iOS编程入门_第11张图片
20150704004342453.jpeg

**应用程序加载到后台: **

iOS编程入门_第12张图片
20150704004649569.png

**应用程序从前台进入后台: **

iOS编程入门_第13张图片
20150704003643254.png

**应用程序从后台进入前台: **

iOS编程入门_第14张图片
20150704003711205.png

补充:iOS应用程序的生命周期( http://www.jianshu.com/p/aa50e5350852 )

4.iOS坐标体系

屏幕左上角是坐标原点,横向是X轴的正向,纵向是Y轴的正向,状态栏从Y=0到Y=20处

iOS编程入门_第15张图片
20150701185857901.png
iOS编程入门_第16张图片
屏幕快照 2017-04-21 下午2.11.25.png
  • 窗体的作用:

UIWindow相当于一个画框。它能够承载其他的视图对象(包括视图的子类对象),但通常情况下我们不会将所有的视图对象直接放在应用的窗口上,而是由一个或多个视图控制器对象(稍后介绍)来管理这些内容

iOS编程入门_第17张图片
20150701191026285.png
  • UIView和UIWindow:

1.UIWindow呈现的原理

我们可以在刚才的AppDelegate.m文件中加入下面的代码:

// 应用程序加载完成时回调此方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 创建窗口对象并设置其大小为屏幕大小
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // 设置窗口的背景色
    self.window.backgroundColor = [UIColor whiteColor];
    // 设置窗口对象为主窗口并且可见
    [self.window makeKeyAndVisible];
    return YES;
}

2.UIWindow和UIView的继承关系

iOS编程入门_第18张图片
屏幕快照 2017-04-21 下午2.16.44.png
iOS编程入门_第19张图片
20150701191352170.png
iOS编程入门_第20张图片
屏幕快照 2017-04-21 下午2.18.02.png

2.iOS语法糖

https://www.jianshu.com/p/3f7b3c2d9ef3

3.其他相关

Objective-C Associated Objects 的实现原理:
http://blog.leichunfeng.com/blog/2015/06/26/objective-c-associated-objects-implementation-principle/

你可能感兴趣的:(iOS编程入门)