一、概览
1-1、常用的APP架构
1-2、IOS开发 常见的软件
二、创建第一个 IOS 应用
2-1、初始化一个新项目
在 xcode 新建一个 App 项目
使用 Objective-C 语言,设置项目
新建第一个项目成功,注意进来后ios最低版本设置的比较高。可以改一下
看一下项目结构, 很清楚的能看出来,项目是从 main 作为入口的, 入口之前还做了很多app的准备发工作, 然后是 AppDelegate 这里面是页面从加载到绘制的管理生命周期的地方, 也是管理视图的地方, 后面为了分离他的功能,分离出来了 SceneDelegate 页面的视图管理,可以在这里做启动页的设置, 特别注意,默认更改这里是不会改变的,因为视图默认走的是 Main 需要进行设置, 关于设置启动页在另一篇文章有写
2-2、hello world
// ViewController.m
#import "ViewController.h"
**@interface** ViewController ()
**@end**
**@implementation** ViewController
- (**void**)viewDidLoad {
[**super** viewDidLoad];
// Do any additional setup after loading the view.
// 设置一个 hello world
[**self**.view addSubview:({
UILabel *label = [[UILabel alloc] init];
label.text = @"hello world";
[label sizeToFit];
label.center = CGPointMake(**self**.view.frame.size.width/2, **self**.view.frame.size.height/2);
label;
})];
}
**@end**
2-3、IOS 中的 MVC
在 IOS 中 视图都是 在View 中 管理在 ViewController
2-3、创建一个UIView
-
最基础的视图类,管理屏幕上一定区域的展示
-
外观渲染动画等
-
相应区域的事件、管理子视图
-
布局
- 设置大小、位置 frame
-
使用栈管理全部的子 View
- 位置重叠的展示最后入栈的
- 可以随时调整位置
- 插入到指定位置
断点调试UIVIew的生命周期
#import "ViewController.h"
@interface TestView : UIView
@end
@implementation TestView
-(instancetype)init{
self = [super init];
if(self){
}
return self;
}
- (void)willMoveToSuperview:(nullable UIView *)newSuperview{
[super willMoveToSuperview:newSuperview];
}
- (void)didMoveToSuperview{
[super didMoveToSuperview];
}
- (void)willMoveToWindow:(nullable UIWindow *)newWindow{
[super willMoveToSuperview:newWindow];
}
- (void)didMoveToWindow{
[super didMoveToWindow];
}
@end
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
TestView *view = [[TestView alloc] init];
view.backgroundColor = [UIColor greenColor];
view.frame = CGRectMake(110, 150, 100, 100);
[self.view addSubview:view];
}
@end
2-4、UIViewController
视图控制器,管理视图 View 层级结构
-
包含自身 View , 可以理解为一个容器
- 管理 View 视图的生命周期
- 响应用户操作
- 和App 整体交互,视图的切换
- 作为一个 container 管理多个 Controller 和动画
-
ViewController 的生命周期
- init
- viewDidLoad
- viewWillAppear
- viewDidAppear
- viewWillDisappear
- viewDidDisppear
- Dealloc
断点重载 ViewController 的生命周期
@interface ViewController ()
@end
@implementation ViewController
-(instancetype)init{
self = [super init];
if(self){
}
return self;
}
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
}
- (void)viewIsAppearing:(BOOL)animated{
[super viewIsAppearing:animated];
}
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
}
- (void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
TestView *view = [[TestView alloc] init];
view.backgroundColor = [UIColor greenColor];
view.frame = CGRectMake(110, 150, 100, 100);
[self.view addSubview:view];
}
@end
三、总结
本文学习了从 xcode 如何创建第一个 ios app 应用, 进行初始化和了解项目结构, 通过断点调试的方式,查看 View 的生命周期和 ViewController 的生命周期,后面将继续扩展我们应该的其他功能