目录第1章iPhoneSDK简介......11.1苹果公司的iPhoneSDK....11.2组建iPhone项目.....21.3iPhone应用程序组件.....31.3.1应用程序文件夹层次结构.....31.3.2可执行文件.....31.3.3Info.plist文件.....41.3.4图标和默认图像.....51.3.5XIB(NIB)文件.....51.3.6应用程序束中不存在的文件.....51.3.7沙盒.....61.4平台限制.....61.4.1存储限制.....61.4.2数据访问限制.....71.4.3内存限制.....71.4.4交互限制.....71.4.5电量限制.....71.4.6应用程序限制.....81.4.7用户行为限制.....81.5SDK限制.....81.6编程范型.....91.6.1面向对象编程.....91.6.2模型—视图—控制器.....91.7构建iPhone应用程序主干.....151.8HelloWorld应用程序.....151.8.1类.....171.8.2代码.....181.8.3关于示例代码和内存管理的注意事项.....181.9构建HelloWorld应用程序.....191.9.1创建iPhone项目.....191.9.2运行主干.....201.9.3定制iPhone项目.....201.9.4编辑标识信息.....211.9.5使用调试器.....211.10苹果公司的iPhone开发人员计划.....231.10.1开发电话.....231.10.2应用程序标识符.....231.11从Xcode到iPhone:Organizer界面.....241.11.1PROJECTS&SOURCES列表.....251.11.2DEVICES列表.....251.11.3Summary选项卡.....251.11.4Console选项卡.....251.11.5CrashLogs选项卡.....251.11.6Screenshot选项卡.....251.11.7关于限制(Tethering).....261.11.8在iPhone上测试应用程序.....261.11.9编译以分发.....271.12使用文档中未记录的API调用.....281.13AdHoc分发.....281.14小结.....29第2章视图......302.1UIView和UIWindow...302.1.1层次结构.....302.1.2几何特征.....312.1.3手势.....342.2秘诀:添加递进式子视图.....342.3秘诀:拖动视图.....362.3.1UITouch...372.3.2添加持久性.....392.4秘诀:剪辑视图.....422.4.1通过剪辑平衡触摸.....432.4.2访问逐个像素值.....432.5秘诀:检查多点触摸.....452.6UIView动画.....482.7秘诀:淡入和淡出视图.....492.8秘诀:交换视图.....502.9秘诀:翻转视图.....522.10秘诀:将CATransition应用于层.....542.10.1文档中未记录的动画类型.....542.10.2通用CoreAnimation调用.....562.11秘诀:滑动视图.....572.12秘诀:转换视图.....592.13小结.....61第3章视图控制器......633.1视图管理.....633.1.1核心类.....633.1.2专用类.....643.1.3创建UIViewController...643.2使用InterfaceBuilder为UIView-Controller构建视图.....663.2.1温度转换器示例.....663.2.2直接加载XIB文件.....733.3导航控制器.....733.3.1设置导航控制器.....743.3.2推入和弹出视图控制器.....743.3.3导航项类.....753.4秘诀:构建简单的双项菜单.....753.5秘诀:添加分段控件.....773.6秘诀:在导航栏中添加UIToolbar...793.7秘诀:在视图控制器之间导航.....813.7.1返回根.....833.7.2加载视图控制器数组.....833.8选项卡栏.....833.9小结.....86第4章警告用户......874.1通过警告直接与用户对话.....874.1.1记录结果.....884.1.2构建警告.....884.1.3显示警告.....894.2秘诀:创建多行按钮显示.....904.3秘诀:自动计时的无按钮警告.....914.4秘诀:请求用户的文本输入.....924.5秘诀:显示简单菜单.....944.6“请稍候”:向用户显示进度.....954.7秘诀:调用基本的文档中未记录的UIProgressHUD...954.8秘诀:使用UIActivity-IndicatorView...974.9秘诀:构建UIProgressView...984.10秘诀:添加自定义、可轻击的覆盖层.....1014.11秘诀:构建下滑式警告.....1044.12秘诀:添加状态栏图像.....1074.13添加应用程序标记.....1084.14秘诀:简单的音频警告.....1104.15小结.....112第5章基本表格......1135.1UITableView和UITableView-Controller简介.....1135.1.1创建表格.....1135.1.2UITableViewController的作用.....1155.2秘诀:创建简单的列表表格.....1155.2.1数据源函数.....1165.2.2重用单元格.....1165.2.3字体表格示例.....1165.3秘诀:创建基于表格的选择表.....1185.4秘诀:将图像加载到表格单元中.....1225.5秘诀:设置单元格的文本特性.....1235.6秘诀:删除单元格选择.....1245.7秘诀:创建复杂的单元格.....1255.8秘诀:创建选中的选择.....1275.9秘诀:删除单元格.....1285.9.1创建和显示删除控件.....1305.9.2关闭删除控件.....1315.9.3处理删除请求.....1315.9.4滑动单元格.....1315.9.5添加单元格.....1315.10秘诀:对单元格重新排序.....1315.11秘诀:使用公开.....1325.12小结.....134第6章高级表格......1356.1秘诀:对表格选择进行分组.....1356.1.1构建基于部分的数据源.....1396.1.2添加部分标题.....1396.2秘诀:构建带索引的部分表格.....1406.3秘诀:定制单元格背景.....1416.4秘诀:创建蓝白交替的单元格.....1456.5秘诀:设置表格边框.....1466.6秘诀:添加耦合的单元格控件.....1486.7秘诀:构建多滚轮表格.....1506.8秘诀:使用UIDatePicker...1536.9秘诀:创建完全自定义的分组表格.....1556.10小结.....160第7章媒体......1617.1秘诀:按照文件类型浏览Documents文件夹.....1617.2加载和查看图像.....1637.3秘诀:显示小图像.....1647.4秘诀:使用UIWebVeiw显示图像.....1677.5秘诀:浏览图像库.....1697.6秘诀:选择和定制相册中的图像.....1717.7秘诀:使用iPhone照相机拍照.....1747.8处理iPhone音频.....1757.9秘诀:使用Celestial播放音频.....1767.10秘诀:使用媒体播放器实现音频和视频重放.....1787.11秘诀:录制音频.....1797.12读入文本数据.....1877.13从备份文件还原媒体.....1877.14小结.....189第8章控件......1908.1秘诀:构建简单的按钮.....1908.1.1UIButton类.....1918.1.2构建自定义按钮.....1928.1.3玻璃按钮(glassbutton).....1948.2秘诀:向按钮添加动画元素.....1948.3秘诀:为按钮响应制作动画效果.....1968.4秘诀:定制开关.....1978.5秘诀:添加自定义滑块缩略图.....2008.6秘诀:关闭UITextField键盘.....2048.7秘诀:关闭UITextView键盘.....2058.8秘诀:向文本视图添加一个撤销(Undo)按钮.....2078.9秘诀:创建一个基于文本视图的HTML编辑器.....2098.10秘诀:构建一个交互搜索栏.....2118.11秘诀:添加标注(callout)视图.....2138.12添加一个页面指示器控件.....2168.13秘诀:定制工具栏.....2188.14小结.....221第9章人物、地点和事件......2239.1地址簿框架.....2239.1.1AddressBookUI.2239.1.2AddressBook..2249.2秘诀:访问地址簿图像数据.....2259.3秘诀:显示地址簿信息.....2279.4秘诀:浏览地址簿.....2289.4.1(只)浏览电子邮件地址.....2309.4.2添加新的联系人.....2309.5CoreLocation..2319.6秘诀:CoreLocation简介.....2329.7秘诀:将地理编码转化为地址.....2359.8秘诀:使用CoreLocation数据访问地图.....2389.9秘诀:访问核心设备信息.....2409.10秘诀:启用和禁用近程传感器.....2419.11秘诀:使用加速度将方向定位到“向上”.....2419.12秘诀:使用加速度移动屏幕上的对象.....2439.13小结.....246第10章连接服务......24710.1秘诀:添加自定义设置束.....24710.2秘诀:使应用程序支持自定义URL模式.....25110.3秘诀:检查网络状态.....25310.3.1测试网络状态.....25310.3.2恢复本地IP地址.....25410.3.3查询站点的IP地址.....25510.3.4检查站点可用性.....25510.4秘诀:与iPhone数据库交互.....25710.5秘诀:将XML转换为树.....25910.6秘诀:存储和检索密钥链项.....26110.6.1存储多个密钥链值.....26510.6.2密钥链持久化.....26710.7发送和接收文件.....26710.8秘诀:构建一个简单的基于Web的服务器.....26810.9即时消息传送.....27210.10小结.....272第11章CoverFlow编程......27411.1UICoverFlowLayer类.....27411.2构建CoverFlow视图.....27611.3构建CoverFlow视图控制器.....27811.3.1CoverFlow数据源方法.....27911.3.2CoverFlow委托方法.....27911.4小结.....282本书的目标读者本书面向新的iPhone开发人员,他们马上要开发实际项目,但面对着一个全新的SDK。虽然每位程序员创建表格的目标和经验并不相同,但大多数人都需要在其开发工作中解决类似的任务:如何构建表格,如何创建安全的密钥链条目,如何搜索地址簿,如何在视图之间切换,以及如何使用CoreLocation。本书针对的正好是刚开始接触iPhone编程的学习者。通过清晰、内容完备的示例,读者可以迅速起步并开始高效率的开发。书中给出了经过