zoukankan      html  css  js  c++  java
  • iOS介绍

    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

  • 相关阅读:
    mac安装go环境
    Ubuntu-Mininet安装
    安装pyenv
    linux下安装weblogic
    C#常用方法
    jenkins部署net core ——2
    jenkins部署net core ——1
    Inno Steup
    安装两个SQL server 实例
    C#线程启动、暂停、恢复、停止怎么实现
  • 原文地址:https://www.cnblogs.com/PJXWang/p/5038513.html
Copyright © 2011-2022 走看看