美文网首页iOS乱炖
[IOS开发指南]第五章 Cocoa Touch 框架

[IOS开发指南]第五章 Cocoa Touch 框架

作者: zhulang424 | 来源:发表于2017-08-28 23:48 被阅读31次

    iphone 技术层结构,从上到下:Cocoa Touch,多媒体,核心服务,核心 OS

    一.Cocoa Touch层
    1.关键技术
    • 多任务(UIKit)
    • 打印(UIKit)
    • 数据保护:锁定时无法访问,解锁后通过密钥访问
    • 苹果推送
    • 本地通知
    • 手势识别器
    • 文件共享(/Documents目录)
    • 点对点对战(蓝牙)
    • 标准 VC
    • 外部显示
    2.包含框架
    • UIKit
    // 应用程序管理
    // 用户界面管理
    // 图形和窗口支持
    // 多任务
    // 手势的处理
    // 标准 VC
    // 对文本和 WEB 内容的支持
    // 复制粘贴的支持
    // 动画
    // 通过 URL 和其他程序交互
    // 苹果推送
    // 本地通知
    // 定制输入键盘
    // 对残障人士的易用性支持
    // 对 PDF 的支持
    // 对设备信息的支持:各种传感器,摄像头,照片库,设备名和型号,电池状态,耳机线控
    
    • MapKit
    // 地图缩放,标记地点,在地图上显示路线
    
    • GameKit
    // 点对点网络通信(Bonjour):语音通话
    
    • Message UI / Address Book UI / Event Kit UI
    // 短信邮件,联系人,日历事件
    
    • iAd
    // 显示广告(view),事件响应
    

    二.多媒体层

    • AVFoundation
    // 处理音频,视频 : 电影录制,音轨管理,音频平移等
    
    • CoreAudio
    // 处理音频,包含 ToolBox,AudioUnit
    // ToolBox : 播放警报声,振动
    // AudioUnit : 处理声音
    
    • CoreImage
    // 处理图像的高级功能 : 人脸识别,图像过滤等
    
    • CoreGraphics
    // 绘图的高级功能
    
    • CoreText : 处理文本的高级功能
    // 处理文本的高级功能
    
    • Image I/O
    // 处理图像的导入导出
    
    • Media Player
    // 视频播放器
    
    • OpenGLES
    // 绘制2D和3D 动画
    
    • Core Animation
    // 创建动画效果
    

    核心服务层(通过 Foundation 框架使用)

    • Accounts
    // 管理账户
    
    • Address Book
    // 管理通讯录
    
    • CFNetwork
    // 访问 BSD 套接字,HTTP,FTP 协议请求,以及发现 Bonjour 服务
    
    • Core Data
    // 数据模型框架 : 包括序列化,SQLite 数据库
    
    • Core Foundation
    // Foundation 框架的 C 版本
    
    • Foundation
    // 与 View 无关的系统层级的管理功能 : 线程,本地化等
    
    • Event Kit
    // 日历相关功能
    
    • Core Location
    // 定位服务
    
    • Core Motion
    // 与运动相关的功能 : 加速度传感器,陀螺仪等
    
    • Quick Look
    // 文件浏览
    
    • Store Kit
    // 应用内购功能
    
    • SystemConfiguration
    // 处理设备的配置信息 : 网络配置状态等
    

    核心 OS 层

    • Accelerate
    // 简化计算任务,包括数字信号处理功能
    
    • External Accessory
    // 针对配件的接口
    
    • Security
    // 加密功能
    
    • System
    // 访问 UNIX 开发环境的工具
    

    Cocoa 中的核心类

    • UIApplication
    // 程序运行过程中会创建一个 UIApplication 类的单例,通过[UIApplication sharedApplication]获取单例
    // 主要工作是负责处理 event : 将事件放入 event queue 逐个处理.处理时把事件发送给 key window
    // 同时维护一个 UIWindow 对象列表,可以访问任何 UIView 对象
    // 有一个 AppDelegate,负责处理生命周期事件,系统事件(来电等)
    
    • UIWindow
    // 放置视图的容器
    // 负责 : 显示视图,将事件发给视图
    // 应用通常只有一个窗口,但是电影播放器等会新增一个窗口
    
    • UIResponder
    // 可以响应 event 的对象,UIView 的父类
    // key window 派发 enent 时,可能有多个 view 响应这个 event,事件将沿着响应链(视图层级)向上传递,能处理这个 event 的 view 成为 first responder.例如给文本框输入文字时,文本框是 first responder,退出编辑后,文本框应取消 first responder 状态
    
    • UIView
    // 定义一块矩形区域,并管理区域的屏幕显示
    // 可以使用嵌套的形式形成层次结构:父视图包含子视图
    
    • UIControl
    // UIview 的子类,是几乎所有原生界面控件(UIButton,UISwitch,UITextField 等)的父类
    // 不能直接使用,只定义了子类需要实现的方法
    
    • 原生界面控件
    // UILable : 标签(显示静态文本,不可编辑)
    // UITextField : 单行文本框(可编辑).常用属性 : text,placeholder
    // UITextView : 多行文本框(可编辑),继承自 UIScrollView,可自动添加滑动条.由于输入文本可以包括换行符,所以关闭键盘需要专门的事件.常用属性 : text,editable
    
    // UIButton : 按钮
    
    // UISwitch : 开关
    
    // UISegmentControl : 分段控件(长条)
    
    // UISlider : 滑块(调节音量,亮度等)
    // UIStepper : 步进控件(类似 UISlider,区别在于不能随意调节数字,只能按段来)
    
    
    // UIPicker : 选择器,常用子类 : UIDatePicker
    
    // UIPopoverController : 弹出框(ipad 特有)
    
    // UIColor : 颜色
    // 常用方法:
    // [UIColor colorWithRed:(CGFloat) green:(CGFloat) blue:(CGFloat) alpha:(CGFloat)],数值都是从0.0~1.0,透明度0.0为完全透明
    // [UIColor colorWithCGColor:(nonnull CGColorRef)],通过 CGColor 实例获得 UIcolor 实例
    // @property(nonatomic,readonly) CGColorRef CGColor; 通过 UIColor 实例获得 CGColor 实例,常用于 Quartz 绘图
    
    // UITableView : 列表,包含 Section(段落) 和 Cell(行)
    
    • 继承链
    // 原生控件(UIButton 等) -> UIControl (不可使用) -> UIView -> UIResponder (不可使用)
    
    • event 的产生及处理过程
    // event 流向 : 系统框架 -> UIApplication 单例 -> key window -> view
    // 1.系统框架将因用户行为产生的数据(触摸屏,传感器,陀螺仪等)封装成 event
    // 2.将 event 发给 UIApplication 单例,UIApplication 单例将 event 放入 event queue 逐个处理
    // 3.处理时将 event 发送给应用的 key window,由 key window 派发给响应链(responder chain)最下层的 view
    // 4.如果这个 view 不能处理事件,就沿着响应链向上层 view 传递,直到找到能处理事件的对象(first responder)
    // 响应链最下层是视图层级最上层:最靠近屏幕的层,没有子 view
    

    相关文章

      网友评论

        本文标题:[IOS开发指南]第五章 Cocoa Touch 框架

        本文链接:https://www.haomeiwen.com/subject/casprxtx.html