本书以iOS8、Xcode6为平台,系统地讲解了iOS开发中的基础理论及其界面编程,包括iOS平台、iOS设备常识、iOS8新特性、常用控件的开发、表视图、多视图控制器、五种数据存储方式、常用设计模式、手势识别及动画等。
本书不局限于iOS开发的理论知识,而是采用项目驱动的方式来讲授理论,全书接近四十多个项目,这些项目可以帮助读者更好地理解各个知识点在实际开发中的应用,也可以供读者开发时作为参考。
本教材附有配套视频、源代码、习题、教学课件等资源,而且为了帮助初学者更好地学习本教材中的内容,还提供了在线答疑,希望得到更多读者的关注。
本书既可作为高等院校本、专科计算机相关的程序设计课程教材,也可作为iOS技术基础的培训教材,是一本适合广大计算机编程初学者的入门级教材。
1、零基础、入门级讲解
无论你是否接触过iOS,本书都会让你感受到学习的成就感,找到“豁然开朗”的感觉。
2、知识讲解从需求入手,深入剖析原理
学编程不能只知其然,而不知其所以然,本书在讲每个知识点时,都是从需求入手,让读者在学习知识点时,做到“胸有成竹”,针对一些较难理解的知识点,会深入剖析原理,化难为易,理解深刻。
3、超多、实用、专业的项目
本书结合市场上的真实项目,采用灵活的方式讲解理论知识,例如,第2章是一个控件一个项目,现学现用,学以致用;第3章是项目与知识点贯穿,边学边用;第4章是先理论后项目,综合运用。读者只要亲自实践本书中的案例,就可以轻松拥有项目经验。
4、细致入微、贴心提示
本书安排了很多“多学一招”“脚下留心”等,帮助初学者透彻理解相关知识,轻松掌握相关技巧。
5、教材、资源、服务三合一,高效学习
本书配套了多种资源供广大师生使用,另外,不管您是老师还是学生,使用我们的教材、资源过程中,遇到任何问题,都可以联系我们,我们的服务是既贴心又专业的。
第1章 iOS应用开发入门 1 1.1 带你认识iOS 1 1.1.1 iOS简介 1 1.1.2 iOS框架层次 2 1.1.3 iOS开发设备 3 1.1.4 iOS 8的全新功能 6 1.2 搭建开发环境 7 1.2.1 申请加入iOS开发团队 7 1.2.2 下载和安装Xcode与iOS SDK 10 1.2.3 Xcode 6的新特性 12 1.3 配置iOS设备以运行程序 15 1.3.1 生成并安装证书 15 1.3.2 注册设备 20 1.3.3 创建应用程序ID 21 1.3.4 创建并安装描述文件 22 1.4 使用Xcode创建第一个iOS程序 23 1.4.1 在Xcode中创建项目 23 1.4.2 熟悉Xcode界面 26 1.4.3 了解项目文件组织结构 30 1.4.4 编译并在模拟器上运行程序 36 1.4.5 使用Interface Builder 丰富程序界面 36 1.4.6 使用iOS模拟器 47 1.5 本章小结 48 第2章 UI控件 49 2.1 UIView概述 49 2.1.1 什么是UIView 49 2.1.2 UIView的常见属性和方法 50 2.2 标签控件和图片控件 51 2.2.1 标签控件(UILabel) 51 2.2.2 图片控件(UIImageView) 55 2.2.3 实战演练——会喝牛奶的汤姆猫 57 2.3 按钮控件(UIButton) 60 2.3.1 按钮控件概述 60 2.3.2 实战演练——使用 按钮移动、旋转、缩放图片 63 2.4 文本框控件和文本控件 67 2.4.1 文本框控件(UITextField) 67 2.4.2 实战演练——用户 登录“传智播客” 71 2.4.3 多行文本控件(UITextView) 74 2.5 开关控件(UISwitch) 76 2.5.1 开关控件概述 76 2.5.2 实战演练——使用开关控制“灯泡” 77 2.6 滑块控件(UISlider) 79 2.6.1 滑块控件概述 79 2.6.2 实战演练——使用滑块控制音量 81 2.7 分段控件(UISegmentControl) 83 2.7.1 分段控件概述 83 2.7.2 实战演练——使用分段控件控制 “花朵” 84 2.8 数据选择控件 87 2.8.1 日期选择控件(UIDatePicker) 87 2.8.2 实战演练——倒计时 89 2.8.3 选择控件(UIPickerView) 92 2.8.4 实战演练——点菜系统 95 2.9 屏幕滚动控件(UIScrollView) 100 2.9.1 屏幕滚动控件概述 100 2.9.2 实战演练——喜马拉雅 103 2.10 页控件(UIPageControl) 106 2.10.1 页控件概述 106 2.10.2 实战演练——自动轮播器 107 2.11 本章小结 111 第3章 表视图 112 3.1 表视图基础 112 3.1.1 表视图的组成 112 3.1.2 表视图样式设置 113 3.1.3 数据源协议 114 3.1.4 委托协议 114 3.1.5 单元格的组成和样式 115 3.2 实战演练——汽车品牌 117 3.2.1 实战演练——创建简单表视图 117 3.2.2 实战演练——添加索引 125 3.2.3 实战演练——添加搜索栏 126 3.3 自定义单元格 132 3.4 静态单元格 138 3.5 实战演练——通信录 144 3.5.1 实战演练——删除和插入单元格 144 3.5.2 实战演练——移动单元格 151 3.6 表视图UI设计模式 152 3.6.1 分页模式 153 3.6.2 下拉刷新模式 154 3.6.3 iOS 7的新特性——下拉刷新 控件 156 3.6.4 项目实战——下拉刷新时间数据 157 3.7 本章小结 162 第4章 多视图控制器管理 163 4.1 视图控制器概述 163 4.1.1 程序启动原理 163 4.1.2 视图控制器 165 4.2 导航控制器 167 4.2.1 导航控制器的组成 168 4.2.2 导航控制器的工作原理 169 4.2.3 实战演练——图书列表 跳转到图书详情 171 4.3 标签页控制器 181 4.3.1 标签页控制器的组成 182 4.3.2 实战演练——搭建QQ的UI框架 184 4.4 本章小结 196 第5章 iOS常用设计模式 197 5.1 MVC模式 197 5.1.1 MVC概述 197 5.1.2 Cocoa Touch中的MVC模式 198 5.2 委托模式 200 5.2.1 委托模式概述 200 5.2.2 Cocoa Touch框架的委托模式 202 5.2.3 自定义委托模式 207 5.3 观察者模式 212 5.3.1 观察者模式概述 212 5.3.2 KVC机制 212 5.3.3 KVO机制 218 5.3.4 通知机制 224 5.4 单例模式 231 5.4.1 单例模式概述 231 5.4.2 实战演练——ARC+GCD 情况下的单例模式 235 5.5 本章小结 238 第6章 数据存储 239 6.1 沙盒机制 239 6.1.1 沙盒概述 239 6.1.2 沙盒结构分析 240 6.1.3 沙盒目录获取方式 240 6.2 plist属性列表 241 6.2.1 实战演练——创建PropertyList 工程 242 6.2.2 实战演练——数据的保存 243 6.2.3 实战演练——数据的读取 248 6.3 偏好设置 249 6.3.1 偏好设置的概述 249 6.3.2 实战演练——记住密码 251 6.4 对象归档 254 6.4.1 对象归档概述 254 6.4.2 NSCoding协议 255 6.4.3 实战演练——归档自定义对象 256 6.5 SQLite数据库 260 6.5.1 SQLite简介 260 6.5.2 SQL语句 261 6.5.3 实战演练——使用 SQLite3存储对象 262 6.6 Core Data 268 6.6.1 Core Data简介 268 6.6.2 实战演练——使用Core Data 创建模型 269 6.6.3 实战演练——使用Core Data 插入、查询、删除数据 273 6.7 本章小结 286 第7章 事件与手势识别 288 7.1 事件概述 288 7.2 触摸处理 289 7.2.1 触屏对象 289 7.2.2 响应对象 291 7.2.3 响应者链条 292 7.2.4 实战演练——多点触摸 293 7.3 手势识别 296 7.3.1 UIGestureRecognizer类 296 7.3.2 实战演练——轻扫手势 302 7.3.3 实战演练——捏合手势 305 7.4 本章小结 307 第8章 核心动画 309 8.1 CALayer 309 8.1.1 CALayer类概述 309 8.1.2 实战演练——给图像添加 阴影、边框和圆角 311 8.2 Core Animation详解 315 8.3 属性动画 317 8.3.1 CAPropertyAnimation类 317 8.3.2 实战演练——使用动画旋转、 平移、渐变和缩放“爱心” 318 8.3.3 实战演练——小圆点绕矩形、 圆形轨迹循环运动 323 8.4 实战演练——使用动画组实现 “游动的小鱼” 328 8.5 转场动画 332 8.5.1 CATransition类 332 8.5.2 实战演练——图片浏览器 333 8.6 本章小结 340