博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS介绍
阅读量:5062 次
发布时间:2019-06-12

本文共 3371 字,大约阅读时间需要 11 分钟。

1.iOS介绍

iOS的系统架构分为4层:Cocoa Touch层,Media层,Core Service层和Core OS层。

2.Xcode中的iOS模板:Application,Framework&Library 和 Other

3.故事板中的Scene和Segue

每个视图控制器都会对应一个Scene,Scene翻译为“场景”,可以理解为应用的一个界面或屏幕,在这个屏幕中又很多视图或控件,相当于一个xib。这些Scene之间通过Segue连接,Segue不但定义了Scene之间的跳转(或导航)方式,还体现了Scene之间的关系。跳转的类型分为:Push,Modal,Popover和自定义方式。Scene跳转类型还要跟具体的控制器结合使用。Push是树形导航模式,Mode是模态导航模式,Popover是呈现浮动窗口

4.iOS应用的5种状态

Not Running(非运行状态):应用没有运行或被系统终止。

Inactive(前台非活动状态):应用正在进入前台状态,但是还不能接受事件处理。

Active(前台活动状态):应用进入前台状态,能接受事件处理

Background(后台状态):应用进入后台后,依然能够执行代码。如果代码执行完毕,应用进入挂起状态

Suspended(挂起状态):处于挂起的应用进入一种“冷冻”状态,不能执行代码,如果系统内存不够,应用会被终止

 

 

4.1 非运行状态—应用启动场景:

用户点击应用图标的时候,可能是第一次启动这个应用,也可能是应用终止后再次启动:Not running –>Inactive->Active

Not running ->Inactive:调用application:didFinishLaunchingWithOptions:方法,发出UIApplicationDidFinishLaunchingNotification通知

Inactive->Active:调用applicationDidBecomeActive:方法,发出UIApplicationDidBecomeActiveNotification通知

4.2 点击Home键 – 应用退出场景

应用处于运行状态(Active状态)时,点击Home键或者有其他的应用导致当前应用中断。该场景的状态跃迁过程可以分成两种情况:可以在后台运行或者挂起,不可以在后台运行或者挂起。根据产品属性文件(info.plist)中的相关属性Application does not run in background是与否可以控制这两种状态。

状态跃迁的第一种情况:Active -> Inactive -> Background -> Suspended

l   在Active –> Inactive阶段:调用applicationWillResignActive:方法,发出UIAppplicationWillResignActiveNotification通知

l   在Inactive -> Background阶段:应用从非活动状态进入到后台

l   在Background -> Suspended阶段。调用applicationDidEnterBackground:方法,发出UIApplicationDidEnterBackgroundNotification通知。

 

状态的第二种情况:应用不可以在后台运行或者挂起:Active -> Inactive ->Background -> Suspended -> Not running

l   Active ->Inactive阶段:应用由活动状态转为非活动状态

l   Inactive -> Background阶段:应用从非活动状态进入到后台

l   Background –> Suspended阶段:调用applicationDidEnterBackground:方法,发出UIApplicationDidEnterBackgroundNotification通知。

l   在Suspended -> Not running阶段:调用applicationWillTerminate:方法,发出UIApplicationWillTerminateNotification通知。

4.3 挂起重新运行场景:Suspended -> Background -> Inactive ->Active

l   Suspended -> Background阶段:应用从挂起状态进入后台

l   Background -> Inactive 阶段:调用applicationWillEnterForeground:方法,发出UIApplicationWillEnterForegroundNotification通知。

l   Inactive –> Active阶段:调用applicationDidBecomeActive:方法,发出UIApplicationDidBecomeActiveNotification通知。

 

4.4 内存清除—应用终止场景

应用在后台处理完成时进入挂起状态,如果这时发出低内存警告,为了满足其他应用对内存的需要,该应用就会被清除内存从而终止运行。

内存清除的时候应用终止运行。内存清除有两种情况,可能是系统强制清除内存,也可能是由使用者从任务栏手动清除(即删掉应用)。内存清除后如果应用再次运行,上一次的运行状态不会被保存,相当于应用第一次运行。

在内存清除场景下,应用不会调用任何方法,也不会发出任何通知。

 

iOS6后,低内存情况下,iOS不在使用viewDidUnload:而仅支持didReceiveMemoryWarning:方法,主要释放内存,包括视图控制器中的一些成员变量和视图的释放。

 

5.iOS UI状态保持和恢复

可以在以下三种地方实现状态保持和恢复:

应用程序委托对象,视图控制器,自定义视图

其中application:shouldSaveApplicationState:方法在应用退出时调用,父子控制器是否允许保存状态,返回YES情况是可以保存,NO是不保存

application:shouldRestoreApplicationState:方法在应用启动时调用,负责控制是否恢复上次退出时的状态,返回YES情况是可以恢复,返回NO表示不可以恢复

application:willEncodeRestorableStateWithCoder:方法在保存时调用,在这个方法中实现UI状态或数据的保存,其中[coder encodeFloat:2.0 forKey:@"Version"]语句是保存简单数据

application:didDecodeRestorableStateWithCoder:方法在恢复时调用,在这个方法中实现UI状态或数据的恢复,其中[coder decodeFloatForKey:@"Version"]语句用于恢复上次保存的数据

在iOS6之后,视图控制器添加两方法encodeRestorableStateWithCoder:和decodeRestorableStateWithCoder:,用来实现改控制器中的控制或数据的保存和恢复。

6.设置产品属性

一个工程只有一个Project,但可以有多个Target;

添加Target:File -> New ->Target

6.1 设定屏幕方向

target 的summary选项卡,Supported Inteface Orientations区域四个方向备选,也可以在info.plist中设置

6.2 设置应用图标 :App Icons

  图标对其图片的尺寸和名称要求很严格,普通APP Icons的图片大小为57*57像素,名称为Icon.png;Retina显示屏APP Icons的图片大小为114*114像素,名称为Icon@2x.png

6.3 设置启动屏幕 :Launch Images

6.4 设置设备支持情况:Device

 

转载于:https://www.cnblogs.com/PJXWang/p/5038513.html

你可能感兴趣的文章
fur168.com 改成5917电影
查看>>
PHP上传RAR压缩包并解压目录
查看>>
codeforces global round 1题解搬运
查看>>
python os模块
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>
jenkins常用插件汇总
查看>>
c# 泛型+反射
查看>>
第九章 前后查找
查看>>
Python学习资料
查看>>
多服务器操作利器 - Polysh
查看>>
[LeetCode] Candy
查看>>
Jmeter学习系列----3 配置元件之计数器
查看>>
jQuery 自定义函数
查看>>
jq 杂
查看>>
jquery datagrid 后台获取datatable处理成正确的json字符串
查看>>
作业一
查看>>
AJAX
查看>>
ActiveMQ与spring整合
查看>>
web服务器
查看>>
Leetcode(7)-反转整数
查看>>