第1天 iOS基础UI控件(上) 1
1.1 承载文字的精灵——UILabel 1
1.1.1 创建第一个iOS项目Hello World 1
1.1.2 使用代码重建Hello World项目 7
1.1.3 iOS系统中的UI坐标系 8
1.1.4 UILabel的相关属性设置 9
1.1.5 多行UILabel控件与换行模式 11
1.2 最简单的交互控件——UIButton 13
1.2.1 在屏幕上创建一个UIButton控件 13
1.2.2 UIButton控件的交互状态 14
1.2.3 UIButton类中可以自定义的一些常用属性 15
1.2.4 为UIButton对象添加触发方法 18
1.3 专业显示图片的控件——UIImageView 19
1.3.1 使用UIImageView在屏幕上创建一个图片元素 20
1.3.2 连续变换播放的图片形成动画——UIImageView的帧动画 21
1.4 搜索框控件——UISearchBar 23
1.4.1 添加一个搜索框控件 23
1.4.2 UISearchBar中常用属性的用法 24
1.4.3 UISearchBar的扩展栏 27
1.4.4 UISearchBar的代理方法 28
1.5 简洁小巧的切换控件——UI SegmentedControl 30
1.5.1 创建和初始化UISegmentedControl对象 30
1.5.2 UISegmentedControl中的常用属性与方法 31
1.5.3 UISegmmentedControl中切换模块按钮的增、删、改以及布局操作 32
1.5.4 为UISementedControl控件对象添加触发方法 35
1.6 文本输入交互的基础——UITextField 36
1.6.1 搭建一个用户登录界面 36
1.6.2 为UITextField添加挂件 39
1.6.3 监听用户的输入操作 40
1.6.4 收键盘操作 42
1.7 连续变化的美——UISlider 43
1.7.1 通过滑块控件控制视图的颜色渐变 43
1.7.2 UISlider中常用的可自定义属性 44
第2天 基础UI控件(下) 47
2.1 简洁小巧的开关控件——UISwitch 47
2.1.1 创建一个UISwitch控件 47
2.1.2 UISwitch控件中常用属性解析 48
2.1.3 为UISwitch控件添加触发方法 49
2.2 让等待不再寂寞——UIActivityIndicatorView 49
2.2.1 在视图上创建一个UIActivityIndicatorView控件 50
2.2.2 设计一个全局共享的活动指示器控件 52
2.3 扁平化风格的进度条——UIProgressView 55
2.4 分页控制器——UIPageControl 57
2.5 步进控制器——UIStepper 58
2.5.1 创建一个步进控制器控件 58
2.5.2 为UIStepper控件添加图片修饰 60
2.6 警告框视图——UIAlertView 62
2.6.1 在视图上弹出一个警告框 62
2.6.2 UIAlertView的代理方法 64
2.7 活动列表——UIActionSheet 65
2.7.1 在视图上弹出一个UIActionSheet控件 65
2.7.2 UIActionSheet控件的代理方法 66
2.8 统一的警告控制器——UIAlertController 67
2.8.1 关于UIAlertAction类 67
2.8.2 使用UIAlertController创建警告框和活动列表 68
2.8.3 为警告框风格的UIAlertController添加文本输入框 69
第3天 高级UI控件 71
3.1 自由移动的视图——UIScrollView 71
3.1.1 创建一个UIScrollView控件来展示大图片 71
3.1.2 UIScrollView中常用方法与属性解析 72
3.1.3 UIScrollViewDelegate协议中的方法 74
3.1.4 关于UIScrollView的缩放操作 75
3.2 基础的表格视图——UITableView 77
3.2.1 使用表格视图展示列表数据 77
3.2.2 UITableView中数据载体cell的复用机制 79
3.2.3 数据载体UITableViewCell 80
3.2.4 UITableView的编辑模式 82
3.2.5 UITableView的头视图与尾视图 84
3.2.6 为UITableView添加索引栏 85
3.3 高级文本视图——UITextView 86
3.3.1 创建一个UITextView控件 86
3.3.2 UITextView中的常用属性与方法 87
3.3.3 UITextViewDelegate协议中的常用方法 88
3.4 高级集合布局视图——UICollectionView 90
3.4.1 UICollectionView控件的优势与布局方式 91
3.4.2 使用UICollectionView进行九宫格式的布局 91
3.4.3 创建更加灵活的流式布局 93
3.4.4 参差瀑布流布局 94
3.4.5 使用UICollectionView进行圆环布局 98
3.5 选择器控件——UIPickerView 101
3.5.1 创建一个UIPickerView控件 102
3.5.2 UIPickerView选中数据时的回调代理 103
3.6 时间选择器——UIDatePicker 104
3.7 网页视图与iOS原生视图的完美结合——UIWebView 106
3.7.1 APP网络传输安全策略 106
3.7.2 通过网络请求加载UIWebView 107
3.7.3 通过HTML字符串加载UIWebView 108
3.7.4 通过NSData数据加载UIWebView 109
3.7.5 UIWebView中常用方法解析 110
3.7.6 UIWebView的代理方法 111
第4天 视图与逻辑的管理者 113
4.1 基础的视图控制器——UIViewController 113
4.1.1 UIViewController的生命周期 113
4.1.2 UIViewController的视图层级结构 118
4.1.3 UIViewController的切换跳转 119
4.2 表格视图控制器——UITableViewController 121
4.2.1 自定义一个UITableViewController 121
4.2.2 UITableViewController自带的下拉刷新控件 122
4.3 导航控制器——UINavigationController 124
4.3.1 导航控制器的工作原理 124
4.3.2 使用导航控制器进行多界面搭建 125
4.3.3 关于导航栏UINavigationBar 129
4.3.4 导航按钮UIBarButtonItem 131
4.3.5 导航控制器的工具栏 133
4.3.6 iOS 8之后导航控制器的一些有趣功能 134
4.4 标签控制器——UITabBarController 135
4.4.1 标签控制器的工作原理 135
4.4.2 标签控制器的基础用法解析 135
4.4.3 UITabBarItem的使用 138
第5天 iOS动画开发基础 139
5.1 UIView层动画的应用 139
5.1.1 执行UIView层过渡动画的三个类方法 139
5.1.2 创建UIView层的阻尼动画 141
5.1.3 动画参数配置与组合动画 142
5.1.4 UIView层过渡动画支持的属性 144
5.2 UIView层动画的另一种创建方式 145
5.2.1 使用commit方式进行UIView层过渡动画的创建 145
5.2.2 两种UIView层动画创建方式的优劣 147
5.3 UIView的转场动画 147
5.3.1 重绘UIView视图时使用的转场动画 147
5.3.2 切换UIView视图时使用的转场动画 148
5.4 核心动画编程技术——CoreAnimation 149
5.4.1 锚点对视图控件几何位置的影响 150
5.4.2 色彩梯度层——CAGradientLayer 151
5.4.3 视图备份层——CAReplicatorLayer 152
5.4.4 图形渲染层——CAShapeLayer 153
5.4.5 文本绘制层——CATextLayer 154
5.4.6 CAAnimation动画体系介绍 155
5.4.7 使用CABasicAnimation创建基础动画 157
5.4.8 使用CAKeyframeAnimation类创建关键帧动画 160
5.4.9 CALayer层的转场动画——CATransition 161
5.4.10 CALayer层的组合动画——CAAnimationGroup 162
5.4.11 CATransform3D变换的应用 163
5.5 炫酷的粒子效果 165
5.5.1 粒子发射器——CAEmitterLayer 166
5.5.2 粒子单元——CAEmitterCell 168
5.5.3 创建粒子火焰动画 169
5.6 播放GIF动态图 171
5.6.1 使用UIWebView进行GIF动态图播放 171
5.6.2 使用UIImageView帧动画进行GIF动态图播放 172
第6天 iOS界面布局 175
6.1 传统的UIViewAutoresizing布局模式 175
6.1.1 通过代码来设置视图控件的UIViewAutoresizing模式 176
6.1.2 可视化地配置控件的autoresizing属性 179
6.2 autolayout自动布局框架 180
6.2.1 初识autolayout 180
6.2.2 autolayout的属性意义与一个简单的自动布局示例 182
6.2.3 使用Objective-C风格的方法进行代码autolayout布局 186
6.2.4 使用格式化的字符进行autolayout布局对象的创建 188
6.2.5 管理约束相关的几个方法 191
6.2.6 使用autolayout设计一个高度自适应的聊天输入框及动画优化 191
6.2.7 使用第三方库Masonry进行autolayout约束布局 193
第7天 iOS界面开发扩展知识 199
7.1 调用系统拨号与短信息应用 199
7.1.1 跳转到系统拨号应用界面 199
7.1.2 跳转到系统短消息界面 200
7.2 iOS视频播放技术 202
7.2.1 向应用中嵌入视频模块 203
7.2.2 MPMoviePlayerController常用属性与方法解析 204
7.3 视频播放器视图控制器——MPMoviePlayerViewController 208
7.4 AVPlayerViewController视频播放框架与画中画开发技术 209
7.4.1 使用A VPlayerV iewController进行视频播放 210
7.4.2 iPad上的画中画播放技术 213
7.5 翻书效果的阅读器视图——UIPageViewController 215
7.5.1 创建UIPageViewController视图控制器 216
7.5.2 双翻页效果的UIPageViewController 220
7.6 更加灵活地创建标签文字——NSAttributedString的应用 221
7.6.1 NSAttributedString类简介 222
7.6.2 可变的属性字符串NSMutableAttributedString 222
7.7 毛玻璃效果的应用——界面模糊处理 224
7.8 iOS地图视图编程技术 226
7.8.1 进行设备地理位置定位 226
7.8.2 原生地图开发技术 229
7.8.3 在地图中添加大头针及标注 232
7.8.4 在地图视图中添加覆盖物 235
7.8.5 在地图中进行线路导航与附近兴趣点检索 238