第1章 C#开发人员基于MonoTouch进行iPhone开发概述 1
1.1 产品对比 2
1.1.1 .NET Framework 2
1.1.2 Mono 2
1.1.3 MonoTouch 3
1.1.4 MonoDevelop 5
1.1.5 iPhone 5
1.2 移动开发 7
1.3 苹果公司的iPhone SDK工具 8
1.3.1 工具 8
1.3.2 许可 9
1.4 本章小结 9
第2章 MonoTouch介绍 11
2.1 开发前的准备 11
2.2 MonoTouch的组件 12
2.2.1 Mono概述 12
2.2.2 MonoTouch的名称空间和类 13
2.3 使用MonoDevelop 15
2.4 使用Interface Builder 18
2.4.1 使用库中的控件 20
2.4.2 设置插座变量 21
2.4.3 设置动作 23
2.5 基于Interface Builder实现的Hello World 24
2.6 基于代码实现的Hello World 27
2.7 调试 28
2.7.1 在模拟器上调试 28
2.7.2 在设备上调试 29
2.8 理解链接器 30
2.9 部署应用程序 31
2.10 本章小结 32
第3章 设计应用程序用户界面:探讨屏幕控件 33
3.1 创建iPhone(y)用户界面和应用程序交互模式 34
3.1.1 命令界面 34
3.1.2 单选界面 35
3.1.3 导航界面 35
3.1.4 模态界面 36
3.1.5 组合界面 37
3.2 UILabel 37
3.3 UIButton 38
3.4 UITextField 40
3.5 UISwitch 41
3.6 UISlider 41
3.7 UIActivityIndicatorView 42
3.8 UISegmentedControl 43
3.9 UIPageControl 44
3.10 本章小结 45
第4章 数据控件 47
4.1 窗口与视图 48
4.1.1 UIWindow 48
4.1.2 UIView 49
4.2 数据视图控件 50
4.2.1 UIWebView 50
4.2.2 UIScrollView 57
4.2.3 UITextView 59
4.2.4 UIPickerView 63
4.2.5 UIDatePicker 68
4.3 控制器与栏 70
4.3.1 UIViewController 70
4.3.2 UIToolBar 71
4.3.3 UITabBarController 74
4.3.4 UINavigationController 81
4.4 本章小结 84
第5章 在iPhone上使用数据 85
5.1 使用SQLite 85
5.1.1 使用Mono.Data.Sqlite 86
5.1.2 建立数据库 86
5.1.3 建立表 87
5.1.4 使用SQL语句 88
5.1.5 升级策略 91
5.2 处理远程数据 92
5.2.1 使用SOAP 92
5.2.2 使用基于REST的Web服务 97
5.2.3 检索数据 99
5.2.4 使用POST提交数据 103
5.2.5 可靠地使用Web服务 105
5.3 本章小结 106
第6章 使用表显示数据 107
6.1 在表中显示数据 108
6.1.1 选择单元格 111
6.1.2 改变单元格布局 112
6.1.3 展示分组数据 114
6.1.4 添加索引 117
6.1.5 分组表的样式 118
6.1.6 定制单元格布局 119
6.2 使用表导航 122
6.2.1 使用UINavigationController 123
6.2.2 实现第二层导航 125
6.2.3 创建静态行内容 127
6.3 编辑表行 130
6.3.1 添加划过删除 130
6.3.2 启用编辑“模式” 131
6.3.3 重新排序单元格 132
6.3.4 创建插入图标 133
6.3.5 添加新行 135
6.4 在表中添加搜索栏 137
6.4.1 启用搜索栏 138
6.4.2 定制搜索外观 140
6.5 本章小结 141
第7章 地图功能 143
7.1 地图基础知识 144
7.1.1 MapKit功能简介 144
7.1.2 CoreLocation功能简介 144
7.2 使用CoreLocation 146
7.2.1 确定设备位置 147
7.2.2 跟踪设备移动 153
7.3 使用MapKit 158
7.3.1 显示地图 159
7.3.2 标注地图 161
7.3.3 使用地理编码功能 171
7.4 本章小结 175
第8章 应用程序设置 177
8.1 探讨Info.plist 177
8.1.1 UIStatusBarHidden 178
8.1.2 UIInterfaceOrientation 179
8.1.3 UIRequiresPersistentWiFi 179
8.1.4 UIPrerenderedIcon 179
8.2 了解设置包 179
8.2.1 Settings应用程序 179
8.2.2 将应用程序添加到Settings应用程序中 180
8.2.3 读取设置 191
8.2.4 更新设置 192
8.3 本章小结 193
第9章 面向设备的硬件编程 195
9.1 响应加速度 196
9.1.1 加速度计 196
9.1.2 使用XYZ坐标系统 196
9.1.3 针对加速度计编程 197
9.1.4 使用加速度作为UI输入 198
9.2 确定设备方向 200
9.2.1 启用通知 200
9.2.2 确定静态设备方向 201
9.2.3 基于事件确定方向 201
9.3 读取接近传感器 202
9.4 联网 203
9.5 考虑电池电量 204
9.5.1 确定静态电池状态 204
9.5.2 使用电池改变事件 205
9.6 访问系统信息 206
9.7 移动开发 207
9.8 本章小结 207
第10章 多媒体编程 209
10.1 图像 209
10.1.1 显示图像 209
10.1.2 选取图像 212
10.1.3 处理选取的图像 214
10.1.4 由摄像头创建图像 215
10.1.5 编辑图像 216
10.1.6 定制摄像头 217
10.1.7 将图像保存到相册 219
10.2 视频 220
10.2.1 播放视频 220
10.2.2 定制视频播放器 222
10.2.3 选取视频 225
10.2.4 记录视频 226
10.2.5 编辑视频 228
10.2.6 将视频保存到相册 230
10.3 音频 231
10.3.1 播放音频 231
10.3.2 记录音频 233
10.4 动画 235
10.4.1 创建基本动画 235
10.4.2 使用UIView动画 237
10.5 本章小结 239
第11章 与其他应用程序通信 241
11.1 集成苹果公司应用程序 241
11.1.1 打开Safari浏览器 241
11.1.2 打开电子邮件 242
11.1.3 拨打电话 242
11.1.4 发送文本/SMS消息 243
11.1.5 在Maps应用程序中打开位置 243
11.1.6 打开YouTube视频 243
11.1.7 打开iTunes商店和应用程序商店 244
11.2 集成第三方应用程序 244
11.2.1 简单集成Google Earth 244
11.2.2 与Skype深度集成 245
11.3 接受来自其他应用程序的调用 245
11.3.1 配置Info.plist文件 245
11.3.2 实现OpenURL架构 248
11.4 集成地址簿 249
11.4.1 ABPersonViewController 250
11.4.2 ABPersonPickerNavigationController 251
11.4.3 ABNewPersonViewController 252
11.4.4 ABUnknownPersonViewController 253
11.4.5 处理属性选择 255
11.5 集成iPod音乐集 256
11.6 集成Objective-C 261
11.6.1 MonoTouch.Foundation 261
11.6.2 MonoTouch.Obj-CRuntime 261
11.6.3 使用btouch自动绑定到Objective-C 261
11.7 本章小结 265
第12章 面向国际用户进行本地化 267
12.1 国际化应用程序 268
12.2 改变语言和地区设置 269
12.3 显示多种语言 270
12.3.1 显示翻译文本 272
12.3.2 显示图像 277
12.3.3 本地化应用程序图标和名称 278
12.3.4 显示“双字节”字符 279
12.3.5 格式化日期、时间、数值和货币 279
12.4 管理实际应用程序中的Localizable.strings 281
12.4.1 genstrings 281
12.4.2 ngenstrings 281
12.5 本章小结 284
第13章 面向iPad编程 285
13.1 iPad设备 285
13.2 iPad应用程序的组成 287
13.2.1 设备方向支持 287
13.2.2 启动图像 290
13.3 iPad的新功能 291
13.3.1 使用UISplitView-Controller 292
13.3.2 创建自定义UIPopover 295
13.3.3 显示模态视图 298
13.3.4 手势识别 299
13.4 构建通用应用程序 304
13.5 本章小结 309
第14章 必要的Objective-C知识 311
14.1 如何使用本章内容 312
14.2 简单了解Objective-C和Cocoa 313
14.3 学术方式与实用方式 315
14.4 基本语法和概念 316
14.4.1 初始化 317
14.4.2 消息与方法 319
14.4.3 内存管理 321
14.5 备忘录 322
14.5.1 术语 322
14.5.2 编译器指令 324
14.5.3 数据类型 326
14.6 本章小结 327
第15章 应用程序商店:提交和销售应用程序 329
15.1 使用多样性生成版进行预提交测试 329
15.1.1 从测试人员获得UDID 330
15.1.2 创建多样性安装配置文件 332
15.1.3 生成应用程序的多样性测试版 333
15.1.4 将多样性生成版打包 334
15.2 准备提交 337
15.2.1 建立应用程序的发布版 337
15.2.2 为发布版添加新配置 337
15.2.3 针对配置改变签名选项 338
15.2.4 浏览包设置 338
15.2.5 生成项目 338
15.2.6 预提交核查清单 338
15.2.7 通过iTunes连接提交 339
15.3 推销应用程序 341
15.3.1 支持应用程序推销 341
15.3.2 关键的应用程序推销技术 342
15.4 本章小结 345
2.4.2 设置插座变量 21
2.4.3 设置动作 23
2.5 基于Interface Builder实现的Hello World 24
2.6 基于代码实现的Hello World 27
2.7 调试 28
2.7.1 在模拟器上调试 28
2.7.2 在设备上调试 29
2.8 理解链接器 30
2.9 部署应用程序 31
2.10 本章小结 32
第3章 设计应用程序用户界面:探讨屏幕控件 33
3.1 创建iPhone(y)用户界面和应用程序交互模式 34
3.1.1 命令界面 34
3.1.2 单选界面 35
3.1.3 导航界面 35
3.1.4 模态界面 36
3.1.5 组合界面 37
3.2 UILabel 37
3.3 UIButton 38
3.4 UITextField 40
3.5 UISwitch 41
3.6 UISlider 41
3.7 UIActivityIndicatorView 42
3.8 UISegmentedControl 43
3.9 UIPageControl 44
3.10 本章小结 45
第4章 数据控件 47
4.1 窗口与视图 48
4.1.1 UIWindow 48
4.1.2 UIView 49
4.2 数据视图控件 50
4.2.1 UIWebView 50
4.2.2 UIScrollView 57
4.2.3 UITextView 59
4.2.4 UIPickerView 63
4.2.5 UIDatePicker 68
4.3 控制器与栏 70
4.3.1 UIViewController 70
4.3.2 UIToolBar 71
4.3.3 UITabBarController 74
4.3.4 UINavigationController 81
4.4 本章小结 84
第5章 在iPhone上使用数据 85
5.1 使用SQLite 85
5.1.1 使用Mono.Data.Sqlite 86
5.1.2 建立数据库 86
5.1.3 建立表 87
5.1.4 使用SQL语句 88
5.1.5 升级策略 91
5.2 处理远程数据 92
5.2.1 使用SOAP 92
5.2.2 使用基于REST的Web服务 97
5.2.3 检索数据 99
5.2.4 使用POST提交数据 103
5.2.5 可靠地使用Web服务 105
5.3 本章小结 106
第6章 使用表显示数据 107
6.1 在表中显示数据 108
6.1.1 选择单元格 111
6.1.2 改变单元格布局 112
6.1.3 展示分组数据 114
6.1.4 添加索引 117
6.1.5 分组表的样式 118
6.1.6 定制单元格布局 119
6.2 使用表导航 122
6.2.1 使用UINavigationController 123
6.2.2 实现第二层导航 125
6.2.3 创建静态行内容 127
6.3 编辑表行 130
6.3.1 添加划过删除 130
6.3.2 启用编辑“模式” 131
6.3.3 重新排序单元格 132
6.3.4 创建插入图标 133
6.3.5 添加新行 135
6.4 在表中添加搜索栏 137
6.4.1 启用搜索栏 138
6.4.2 定制搜索外观 140
6.5 本章小结 141
第7章 地图功能 143
7.1 地图基础知识 144
7.1.1 MapKit功能简介 144
7.1.2 CoreLocation功能简介 144
7.2 使用CoreLocation 146
7.2.1 确定设备位置 147
7.2.2 跟踪设备移动 153
7.3 使用MapKit 158
7.3.1 显示地图 159
7.3.2 标注地图 161
7.3.3 使用地理编码功能 171
7.4 本章小结 175
第8章 应用程序设置 177
8.1 探讨Info.plist 177
8.1.1 UIStatusBarHidden 178
8.1.2 UIInterfaceOrientation 179
8.1.3 UIRequiresPersistentWiFi 179
8.1.4 UIPrerenderedIcon 179
8.2 了解设置包 179
8.2.1 Settings应用程序 179
8.2.2 将应用程序添加到Settings应用程序中 180
8.2.3 读取设置 191
8.2.4 更新设置 192
8.3 本章小结 193
第9章 面向设备的硬件编程 195
9.1 响应加速度 196
9.1.1 加速度计 196
9.1.2 使用XYZ坐标系统 196
9.1.3 针对加速度计编程 197
9.1.4 使用加速度作为UI输入 198
9.2 确定设备方向 200
9.2.1 启用通知 200
9.2.2 确定静态设备方向 201
9.2.3 基于事件确定方向 201
9.3 读取接近传感器 202
9.4 联网 203
9.5 考虑电池电量 204
9.5.1 确定静态电池状态 204
9.5.2 使用电池改变事件 205
9.6 访问系统信息 206
9.7 移动开发 207
9.8 本章小结 207
第10章 多媒体编程 209
10.1 图像 209
10.1.1 显示图像 209
10.1.2 选取图像 212
10.1.3 处理选取的图像 214
10.1.4 由摄像头创建图像 215
10.1.5 编辑图像 216
10.1.6 定制摄像头 217
10.1.7 将图像保存到相册 219
10.2 视频 220
10.2.1 播放视频 220
10.2.2 定制视频播放器 222
10.2.3 选取视频 225
10.2.4 记录视频 226
10.2.5 编辑视频 228
10.2.6 将视频保存到相册 230
10.3 音频 231
10.3.1 播放音频 231
10.3.2 记录音频 233
10.4 动画 235
10.4.1 创建基本动画 235
10.4.2 使用UIView动画 237
10.5 本章小结 239
第11章 与其他应用程序通信 241
11.1 集成苹果公司应用程序 241
11.1.1 打开Safari浏览器 241
11.1.2 打开电子邮件 242
11.1.3 拨打电话 242
11.1.4 发送文本/SMS消息 243
11.1.5 在Maps应用程序中打开位置 243
11.1.6 打开YouTube视频 243
11.1.7 打开iTunes商店和应用程序商店 244
11.2 集成第三方应用程序 244
11.2.1 简单集成Google Earth 244
11.2.2 与Skype深度集成 245
11.3 接受来自其他应用程序的调用 245
11.3.1 配置Info.plist文件 245
11.3.2 实现OpenURL架构 248
11.4 集成地址簿 249
11.4.1 ABPersonViewController 250
11.4.2 ABPersonPickerNavigationController 251
11.4.3 ABNewPersonViewController 252
11.4.4 ABUnknownPersonViewController 253
11.4.5 处理属性选择 255
11.5 集成iPod音乐集 256
11.6 集成Objective-C 261
11.6.1 MonoTouch.Foundation 261
11.6.2 MonoTouch.Obj-CRuntime 261
11.6.3 使用btouch自动绑定到Objective-C 261
11.7 本章小结 265
第12章 面向国际用户进行本地化 267
12.1 国际化应用程序 268
12.2 改变语言和地区设置 269
12.3 显示多种语言 270
12.3.1 显示翻译文本 272
12.3.2 显示图像 277
12.3.3 本地化应用程序图标和名称 278
12.3.4 显示“双字节”字符 279
12.3.5 格式化日期、时间、数值和货币 279
12.4 管理实际应用程序中的Localizable.strings 281
12.4.1 genstrings 281
12.4.2 ngenstrings 281
12.5 本章小结 284
第13章 面向iPad编程 285
13.1 iPad设备 285
13.2 iPad应用程序的组成 287
13.2.1 设备方向支持 287
13.2.2 启动图像 290
13.3 iPad的新功能 291
13.3.1 使用UISplitView-Controller 292
13.3.2 创建自定义UIPopover 295
13.3.3 显示模态视图 298
13.3.4 手势识别 299
13.4 构建通用应用程序 304
13.5 本章小结 309
第14章 必要的Objective-C知识 311
14.1 如何使用本章内容 312
14.2 简单了解Objective-C和Cocoa 313
14.3 学术方式与实用方式 315
14.4 基本语法和概念 316
14.4.1 初始化 317
14.4.2 消息与方法 319
14.4.3 内存管理 321
14.5 备忘录 322
14.5.1 术语 322
14.5.2 编译器指令 324
14.5.3 数据类型 326
14.6 本章小结 327
第15章 应用程序商店:提交和销售应用程序 329
15.1 使用多样性生成版进行预提交测试 329
15.1.1 从测试人员获得UDID 330
15.1.2 创建多样性安装配置文件 332
15.1.3 生成应用程序的多样性测试版 333
15.1.4 将多样性生成版打包 334
15.2 准备提交 337
15.2.1 建立应用程序的发布版 337
15.2.2 为发布版添加新配置 337
15.2.3 针对配置改变签名选项 338
15.2.4 浏览包设置 338
15.2.5 生成项目 338
15.2.6 预提交核查清单 338
15.2.7 通过iTunes连接提交 339
15.3 推销应用程序 341
15.3.1 支持应用程序推销 341
15.3.2 关键的应用程序推销技术 342
15.4 本章小结 345