IOS 开发(一)—— 初识

1,846 阅读2分钟

一、概览

1-1、常用的APP架构

image.png

1-2、IOS开发 常见的软件

image.png

二、创建第一个 IOS 应用

2-1、初始化一个新项目

在 xcode 新建一个 App 项目 image.png

使用 Objective-C 语言,设置项目 image.png

新建第一个项目成功,注意进来后ios最低版本设置的比较高。可以改一下

image.png

看一下项目结构, 很清楚的能看出来,项目是从 main 作为入口的, 入口之前还做了很多app的准备发工作, 然后是 AppDelegate 这里面是页面从加载到绘制的管理生命周期的地方, 也是管理视图的地方, 后面为了分离他的功能,分离出来了 SceneDelegate 页面的视图管理,可以在这里做启动页的设置, 特别注意,默认更改这里是不会改变的,因为视图默认走的是 Main 需要进行设置, 关于设置启动页在另一篇文章有写

image.png

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

image.png

在 IOS 中 视图都是 在View 中 管理在 ViewController

2-3、创建一个UIView

  • 最基础的视图类,管理屏幕上一定区域的展示

  • 外观渲染动画等

  • 相应区域的事件、管理子视图

  • 布局

    • 设置大小、位置 frame
  • 使用栈管理全部的子 View

    • 位置重叠的展示最后入栈的
    • 可以随时调整位置
    • 插入到指定位置

image.png

断点调试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 的生命周期,后面将继续扩展我们应该的其他功能