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

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services...
    zhaihongxia阅读 2,717评论 0 3
  • 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源。共...
    wo不懂阅读 1,415评论 3 3
  • 6转载-->>IOS框架和服务 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,...
    李小六_阅读 3,599评论 2 24
  • 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源。共...
    ch123阅读 1,776评论 0 1
  • 一直以来,有一种心境总是沉甸甸的,抑抑的找不到出处。纷飞的季节樱花落下,柳絮飘过,定格,才知来之心之角落的那根弦,...
    耘儿910阅读 492评论 0 6