iOS开发系列课程(01) --- iOS编程入门

article/2025/10/2 9:19:22

iOS概述

什么是iOS

  iOS是苹果公司为它的移动设备(iPhone、iPad、iWatch等)开发的移动操作系统。

iOS发展史

  • 2007年苹果发布iPhone Runs OS X
  • 2008年更名iPhone OS
  • 2010年更名iOS
  • 2012年WWCD 2012上发布iOS 6
  • 2013年WWCD 2013上发布iOS 7
  • 2014年WWCD 2014上发布iOS 8和Swift
  • 2015年WWCD 2015上发布iOS 9和Watch OS

Cocoa Touch框架

  iOS系统架构可以分为如下图所示的4层,Cocoa Touch框架的地位不言而喻。
这里写图片描述

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

应用和用户界面

  用户界面(也叫用户接口)就是人和计算机交流的渠道,人把要做的事情告诉计算机,而计算机把处理的结果呈现出来。用户界面以计算机的I/O设备作为基础。

  应用程序是指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。手机上的应用通常称之为App。

  几个相关术语:
- UI: User Interface (用户界面/接口)
- App: Application (应用程序)
- API:Application Programming Interface (应用程序编程接口)

UIKit继承结构

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

iOS开发入门

在Xcode中创建iOS项目

  启动Xcode在欢迎页中选择"Create a new Xcode project"。在项目创建向导中选择iOS->Application->Single View Application然后点击下一步。接下来需要设置项目名称、组织名称、组织标识、开发语言(OC或Swift)和设备(iPhone、iPad或Universal)。下一步之后选择项目的位置就可以点击"Create"完成项目创建了。

说明:选择应用的类型其实是选择一个项目模板,让Xcode帮你完成一些繁琐的工作,如果使用Xcode 5,我们建议初学者选择Empty Application,从零开始做一个项目更有助于我们理解代码的工作原理,真正做开发的时候可以选择写代码或者使用可视化的设计器(storyboard或xib),看你所在的公司有怎样的要求。

熟悉Xcode

这里写图片描述

  Xcode的上方是工具栏,有很多工具按钮。

  Xcode的左侧是导航区域,包括:项目导航、符号导航、查询导航、问题导航、测试导航、调试导航、断点导航、报告导航

提示:可以使用Command+1-8的数字键在8种导航之间切换。

  Xcode的中间是编辑器区域;中间的下面是调试区域。

  Xcode的右侧上方是检查器(审查)区域;右侧下方是各种库的区域。

  Xcode常用功能和快捷键

  • Command+[ -> 代码块左移
  • Comamnd+] -> 代码块右移
  • Tab -> 接受代码自动完成提示
  • Esc -> 显示代码提示
  • Command+B -> 编译
  • Command+R -> 运行
  • Control+F -> 前移光标
  • Control+B -> 后移光标
  • Control+P -> 光标移到上一行
  • Control+N -> 光标移到下一行
  • Control+A -> 光标移到行首
  • Control+E -> 光标移到行尾
  • Control+T -> 交换光标左右字符
  • Control+D -> 删除光标右边的字符
  • Control+K -> 删除本行
  • Control+L -> 将光标所在位置置于窗口中央
  • 按住Option双击鼠标 -> 搜索文档
  • Command+Y -> 激活/禁用断电
  • Command+Control+Y -> 继续运行
  • F6 -> 单步跳过
  • F7 -> 单步跳入
  • F8 -> 跳出

第一个iOS应用

  可以在项目导航中看到整个项目包含的文件,打开Supporting Files文件夹可以看到一个main.m文件,里面有大家非常熟悉的main函数。C和Objective-C(以后简称OC)程序的入口都是main函数,iOS应用的入口当然也是main函数,只不过main函数风骚的打了酱油,仅仅去调用了一个叫做UIApplicationMain的函数。UIApplicationMain函数会创建一个UIApplication的对象。每个iOS应用都有且仅有一个UIApplication对象,该对象的作用是维护一个消息循环,监听应用程序的各种事件并执行相应地回调方法(callback method)。回调是一种常见的编程模式,当我们知道一件事情发生的时候要做什么,但是并不知道这件事情什么时候会发生就会用到回调的编程模式,注册一系列的回调方法,当事件发生时通过委托的对象调用这些方法。

#import <UIKit/UIKit.h>
#import "AppDelegate.h"int main(int argc, char * argv[]) {@autoreleasepool {return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));}
}

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

  AppDelegate类的代码如下所示:

  头文件

#import <UIKit/UIKit.h>@interface AppDelegate : UIResponder <UIApplicationDelegate>@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坐标体系

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

这里写图片描述

屏幕尺寸如下表所示:

设备屏幕尺寸分辨率坐标点
iPhone 3和3s3.5英寸320*480320*480
iPhone 4和4s(支持Retina)3.5英寸640*960320*480
iPhone 5和5s(支持Retina)4英寸640*1136320*568
iPhone 64.7英寸750*1334375*667
iPhone 6 Plus5.5英寸1080*1920414*736
iPad 1和2(不支持Retina)9.7768*1024768*1024
iPad 3和4(支持Retina)9.71536*2048768*1024
iPad Air9.71536*2048768*1024
iPad Mini(不支持Retina)7.9768*1024768*1024
iPad Mini2(支持Retina)7.91536*2048768*1024

窗体的作用

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

这里写图片描述

UIView和UIWindow

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;
}

UIWindow和UIView的继承关系

  UIWindow是UIView的子类。UIView定义了一个矩形区域以及操作这个矩形区域中内容的编程接口,除此之外UIView还要处理运行时区域中内容的交互行为(绘图、动画和事件处理)。从上面的图中我们也可以看出,我们要使用的控件都是UIView的子类型。视图会按层次结构排列,位于视图层次结构顶端的就是应用窗体。

  任何应用都有且仅有一个UIWindow对象,UIWindow对象就像一个容器,负责包含应用中的所有视图。应用需要在启动时创建并设置UIWindow对象,然后为其添加其他的视图,就像上面的代码呈现的那样。

  加入窗口的视图会成为该窗口的子视图。子视图也可以有自己的子视图从而构成一个以UIWindow作为根的视图层次结构(树形结构)。

这里写图片描述

UIView的基本属性和方法

  • frame属性:设置视图的坐标和尺寸
  • backgroundColor属性:设置视图的背景色
  • window属性:视图所在的窗口对象
  • -addSubview方法:添加子视图

UILabel的使用详解

UILabel的常用属性

  要想使用iOS编程的API,可以下载一个叫做Dash的工具来查阅文档,非常的方便好用,不仅可以看到文档还可以查阅到Google和StackOverflow上的相关问题,你肯定会喜欢上这个工具的。

这里写图片描述

  UILabel的常用属性:
- text属性:标签上的文字
- textColor属性:文字的颜色
- textAlignment属性:文字的对齐方式
- font属性:字体
- adjustsFontSizeToFitWidth属性:调整文字大小适应标签宽度
- numberOfLines属性:显示的行数,设置成0表示不限制行数

  接下来我们为刚才创建的应用程序添加下面的代码来放置一个标签。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// Override point for customization after application launch.self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];self.window.backgroundColor = [UIColor orangeColor];[self.window makeKeyAndVisible];// 创建标签对象UILabel *myLabel = [[UILabel alloc] init];// 设置标签的尺寸和坐标myLabel.frame = CGRectMake(50, 300, 275, 40);// 设置标签的字体myLabel.font = [UIFont systemFontOfSize:36];// 设置标签的颜色myLabel.textColor = [UIColor blueColor];// 设置标签的对齐方式myLabel.textAlignment = NSTextAlignmentCenter;// 设置标签上的文字myLabel.text = @"Hello, world!";// 将标签添加到窗口上[self.window addSubview:myLabel];return YES;
}

  应用在模拟器(iPhone 6)上运行效果如下所示:

这里写图片描述


http://chatgpt.dhexx.cn/article/JkB0xCca.shtml

相关文章

iOS苹果开发者账号申请教程

只有苹果开发者账号才能上架App Store&#xff0c;苹果开发者需要年费&#xff0c;是苹果公司收的&#xff01; 开发者账号类型功能介绍 下面是个人苹果开发者申请步骤流程&#xff1a; 分五个步骤进行 1、注册苹果账号apple id 2、开启双重认证 3、下载Apple Developer应…

零基础如何学习 iOS 开发?

作为一名混迹iOS开发圈近4年的码农&#xff0c;资历不深不浅&#xff0c;看到这个问题还是忍不住想回答一下。 如果你打算学习iOS开发&#xff0c;那么在开始学之前&#xff0c;你要做好以下4个方面的准备。 ————————————————————— 1 、信念。 很大程…

【原创】iOS开发入门教程

2019独角兽企业重金招聘Python工程师标准>>> 程序发轻狂&#xff0c;代码阑珊&#xff0c;苹果开发安卓狂&#xff01;——写给狂热的编程爱好者们 ###写在前面的话 学习iOS应用程序开发已有一段时间&#xff0c;最近稍微闲下来了&#xff0c;正好也想记录一下前阶段…

iPhone 开发基础教程

Phone 开发基础教程之 在开始编写iPhone 软件之前&#xff0c;需要做一些准备工作。对于初学者&#xff0c;需要一台运行 Leopard(OS X 10.5.3或更高版本)的基于Intel的Macintosh计算机。2006年之后上市的任何Macintosh计算机(不管是笔记本还是台式机)应该都符合要求。 无需使用…

iOS(一):Swift纯代码模式iOS开发入门教程

Swift纯代码模式iOS开发入门教程 项目初始化&#xff08;修改为纯代码项目&#xff09;安装第三方库&#xff08;以SnapKit库为例&#xff09;桥接OC库&#xff08;QMUIKit&#xff09;封装视图并进行导航跳转示例&#xff1a;使用 TangramKit 第三方UI布局库应用国际化添加 R.…

ios开发入门

环境macos 12.5 xcode 12.0 objective c 一、找到启动后加载的ViewController 选择objective c storyboard 创建一个ios app后&#xff0c;直接点击run&#xff0c;xcode会启动手机模拟器&#xff0c;先显示的是lanuchScreen&#xff0c;launchScreen结束后触发applicatio…

iOS开发零基础教程之真机调试流程

本讲主要内容&#xff1a; 1、真机测试前准备工作 2、第一步创建App ID 3、第二步创建开发证书Development Certificate 4、第三步打开本地钥匙串创建CSR文件 5、第四步添加设备 6、第五步创建描述文件 7、第六步导出证书给其他人用 8、第七步在Xcode工程中配置Code Si…

iOS开发入门——基础篇一

文章目录 1. iOS应用生命周期1.1 应用程序的架构1.2 iOS应用的5种状态&#xff1a;1.2.1做一些操作对应的生命周期调用的顺序1.2.2全面的生命周期执行流程图 1.3 Main函数入口1.4 几个关键对象1.5 Main Run Loop 2. UI界面2.1 UIWindow2.2 UIViewController生命周期*2.2.1 View…

iOS 开发 入门:加入iOS Developer Program (iOS开发者申请教程)

我于2012年12月23日提交加入iOS开发者计划&#xff08;即iOS Developer Program,简称IDP&#xff09;的申请&#xff0c;至2012年12月28日申请成功&#xff0c;扣除星期天&#xff0c;一共仅用了5天时间&#xff0c;这超出了我的意料。在这里&#xff0c;我将我的申请过程记录下…

从零学IOS开发(一)

目录 一&#xff0c;开发环境二&#xff0c;新建项目三&#xff0c;项目文件结构四&#xff0c;基本组件五&#xff0c;APP基本雏形 一&#xff0c;开发环境 ​ IOS开发环境很简单&#xff0c;只需一台MAC和一个IDE(Xcode)&#xff0c;Xcode是apple官方的开发环境&#xff0c;…

新手必看,史上最全的iOS开发教程集锦,没有之一!

最近大火的iPhone XS Max和iPhone XS&#xff0c;不知道有没有同学已经下手了呢&#xff1f;一万三的价位确实让很多人望而却步啊。据说为了赢得中国的用户&#xff0c;专门出了双卡双待的&#xff0c;可想而知中国市场这块“肥肉”人人都想要。 近几年&#xff0c;无论苹果出…

IOS 初级开发入门教程(一)介绍篇

导读 目前移动端开发市场上引导开发者追求技多不压身&#xff0c;一个全栈开发者至少要懂后台服务器、数据库、Android、web、ios开发等。“一超多强”是指开发者先成为一门技术的专家然后掌握了解多门技术&#xff0c;这是一种好的发展趋势&#xff0c;另外&#xff0c;这种技…

iOS开发入门教程

摘要 iOS开发入门教程&#xff0c;从创建项目到运行项目&#xff0c;包括OC基础&#xff0c;调试&#xff0c;模拟器设置等相关知识。 程序发轻狂&#xff0c;代码阑珊&#xff0c;苹果开发安卓狂&#xff01;——写给狂热的编程爱好者们 写在前面的话 学习iOS应用程序开发已有…

IOS开发

第一章&#xff1a;iOS开发入门之Xcode的基本使用 文章目录 第一章&#xff1a;iOS开发入门之Xcode的基本使用前言一、Xcode是什么&#xff1f;二、基本使用步骤1.新建2.文件代码设置1⃣️.代码设置2⃣️把info里面的Application Scene Manifest删掉** 三、简单例子总结 前言 …

ios开发教程(一)开发环境搭建

一、系统安装 1. 如果你有苹果电脑&#xff0c;那么可以直接跳过这个阶段 2. 如果没有苹果电脑&#xff0c;那么可以使用VMWare虚拟机安装macos&#xff0c;安装教程见这篇文章 https://blog.csdn.net/dm569263708/article/details/130523282 二、安装xcode 1. 下载xcode&…

app开发流程:手机软件开发app的6个步骤

现在以手机app为代表的移动互联网已经超过传统的PC&#xff0c;成为企业营销创业赚钱不可忽视的重要渠道&#xff0c;手机软件开发app成为传统企业转型的关键。app开发具体需要哪些流程和周期呢&#xff1f;今天给大家分享一下app开发流程的6个步骤。 1、项目确定 在进行app开…

【2023最新】超详细图文保姆级教程:App开发新手入门(2)

上章节我们已经成功的创建了一个 App 项目&#xff0c;接下来我们讲述一下&#xff0c;如何导入项目、编辑代码和提交项目代码。 Let’s Go! 4. 项目导入 当用户创建一个新的应用时&#xff0c;YonStudio 开发工具会自动导入模板项目的默认代码&#xff0c;不需要手动进行代…

【史上最全App开发知识分享】如何从零开始成为app开发专家?

本文针对小白用户对App做一个简单的介绍&#xff0c;介绍了App都有哪些类型&#xff0c;不同的类型app开发需要哪些技术&#xff0c;用户可以根据自己的需求选择不同的App开发&#xff0c;若不懂技术&#xff0c;没有资金怎么开发app。 一 、App有哪些形式&#xff1f; App主要…

5+ App开发入门指南

原文地址: http://ask.dcloud.net.cn/article/89 HTML5 Plus应用概述 HTML5 Plus移动App&#xff0c;简称5App&#xff0c;是一种基于HTML、JS、CSS编写的运行于手机端的App&#xff0c;这种App可以通过扩展的JS API任意调用手机的原生能力&#xff0c;实现与原生App同样强大…

【2023最新】超详细图文保姆级教程:App开发新手入门(5)

上文回顾&#xff0c;我们已经完成了一个应用的真机调试&#xff0c;本章我们来了解一下如何引入YonBuilder移动开发的&#xff08;原生&#xff09;移动插件, 并利用移动插件完成一个简单的视频播放器。 8. 「移动插件」的使用 8.1 什么是 「移动插件」&#xff1f; 用通俗…