2011年5月25日
摘要: iPhone应用程序的用户界面向来以其精美的图像和丰富的色彩著称。作为应用程序的设计者,您需要提供一个美观的用户界面以融入这样的整体风格。虽然iPhone OS提供了大量精美的用户界面元素,但是每个应用程序仍然需要两个自定义元素:应用程序图标和启动图像。此外,应用程序还应该为iPhone OS提供用于显示在Spotlight搜索结果中的小图标。有些应用程序需要自定义图标,用于在导航栏,工具栏和标签栏中表示应用程序的特定功能和模式。遵循创建这些图标的准则,您就可以设计出既与内置图标相称,又能巧妙地突显您应用程序风格的图标和图像。注意:图标和图像的标准比特深度是24位(其中,红色,绿色和蓝色各占8 阅读全文
posted @ 2011-05-25 16:59 一个人的天空@ 阅读(2068) 评论(0) 推荐(0)
摘要: 为了打造一致的用户体验(也为了让您的工作更加轻松),iPhone OS提供了许多用于导航栏和工具栏的标准按钮,以及用于标签栏的图标。本章介绍了可供您使用的标准图标和按钮,以及如何正确地使用它们。不论您正在开发哪种类型的应用程序,您都应该熟悉本章中所介绍的按钮和图标,这有助于您:正确地使用系统提供的元素避免设计出与系统提供的图标过于相似的自定义图标使用系统提供的按钮和图标在iPhone OS中,许多标准的工具栏和导航栏按钮,标签栏上的项以及在内置应用程序中常见的通用按钮都是可用的。在图10-1中,您可以在邮件应用程序的工具栏上看到一些标准工具栏按钮。图 10-1邮件应用程序工具栏上的标准按钮像图 阅读全文
posted @ 2011-05-25 16:59 一个人的天空@ 阅读(3367) 评论(0) 推荐(0)
摘要: iPhone OS为您提供了若干控件,您可以在自己的应用程序中使用它们,并且这些控件中的绝大部分已经被iPhone OS设备的用户所熟知。这些控件有很多只能用于特定位置,比如表格视图,但也有一些控件具备一定的通用性。本章将向您介绍可以在应用程序的任意视图中使用的控件。当您设计应用程序的用户界面时,永远要牢记一点:对于熟悉的控件,用户期望它们具有与内置应用程序中一样的行为。只要您在应用程序中适当地使用这些控件,一定会为自己的程序增色不少。活动指示器活动指示器表示有一项持续时间未知的任务或进程正在进行当中。如果已知一项任务的持续时间,需要显示该任务的进度,请使用进度视图(更多关于该控件的信息请参考 阅读全文
posted @ 2011-05-25 16:57 一个人的天空@ 阅读(622) 评论(0) 推荐(0)
摘要: 表格视图,文本视图和web视图是具有多种功能的界面元素,它们在iPhone应用程序中有着不同的用途。例如,表格视图可以用来显示简短的选项列表,详细信息的分组列表或者长的项目索引列表。文本视图和web视图相对来说可以不受约束地接受和显示内容。表格视图表格视图通过多行单列的表格呈现数据。行可以被分为不同的段或组,每一行可以包含文本,图像和控件的组合。用户可以以轻击或拖动的方式来滚动行或行的分组。图8-1显示了不同样式的表格视图,它们以不同的方式显示列表。图 8-1使用表格视图显示列表的三种方式用法和行为表格视图在iPhone应用程序中非常有用,因为无论是信息量的多少,它们都提供了组织信息的有效方式 阅读全文
posted @ 2011-05-25 16:56 一个人的天空@ 阅读(1720) 评论(0) 推荐(0)
摘要: 警告,动作表单和模式视图是视图的几种类型,当需要引起用户的注意,或者需要提供额外的选项或功能时,这些视图就会出现。图7-1显示了这几种视图的例子。图 7-1动作表单,模式视图和警告要了解这几种类型视图的编程实现,请参考“模式视图控制器”。用法和行为警告,动作表单和模式视图都是模式的,这意味着用户必须通过点击按钮显式地关闭它们,然后才可以继续使用应用程序。虽然有些时候您需要警告用户潜在的危险动作,或是向他们提供额外的选项,但您一定要避免过度使用这些视图,这是因为:所有类型的模式视图都会中断用户的工作流程。过度频繁地出现请求确认的视图很可能会适得其反,它们想要带给用户的帮助反而变成了打扰。特别地, 阅读全文
posted @ 2011-05-25 16:55 一个人的天空@ 阅读(871) 评论(0) 推荐(0)
摘要: 状态栏,导航栏,标签栏和工具栏在iPhone应用程序中具有特别定义的外观和行为的视图。它们不需要在每个应用程序中都出现(在那些令人惊叹的应用程序中经常是一个也不出现),不过一旦决定让它们出现在应用程序中,就一定要正确地使用这些视图。原因在于使用iPhone OS设备的用户都熟悉它们所提供的功能,对它们显示的信息和执行的功能类型早已习惯。状态栏状态栏显示与用户设备相关的重要信息,包括电话信号强度,当前网络连接和电量信息。图6-1显示了一个状态栏的例子。图 6-1一个包含用户所需的重要信息的状态栏尽管一个全屏的应用程序可以隐藏状态栏,但是您应该仔细考虑这一设计方案。人们总是希望可以看到当前设备的电 阅读全文
posted @ 2011-05-25 16:55 一个人的天空@ 阅读(6325) 评论(2) 推荐(1)
摘要: 在深入研究视图和控件的具体细节之前,先对这些元素在一起工作的方式以及用户期望的行为有一个较高层次的理解,对您来说大有裨益。本章将介绍构成大多数应用程序的各种视图,帮助您了解它们的具体信息以及如何使用它们。想要详细了解每一个用户界面元素的外观,行为和使用指南,请务必阅读本章后面的章节。理解每个用户界面元素是如何针对它的用法进行设计的,能够帮助您在应用程序中正确地使用它,并在适当的情况下根据您的需要定制用户界面元素。应用程序的屏幕及其内容无论是什么类型的应用程序,都有一个应用程序窗口,该窗口为您提供了一个能够呈现应用程序的所有信息的背景。但是用户对这个窗口没有概念,他们对应用程序的体验来自屏幕上的 阅读全文
posted @ 2011-05-25 16:53 一个人的天空@ 阅读(528) 评论(0) 推荐(0)
摘要: 如果您具有使用桌面计算机或便携式计算机应用程序的经验,那么您会发现iPhone应用程序处理很多常见任务的方式与它们不同。本节从人机界面的角度描述了这些常见任务;关于代码实现的技术细节,请参考iPhone应用程序编程指南。启动iPhone应用程序应能够迅速启动,从而用户可以立即开始使用它们。启动时,iPhone应用程序应该:指定适当的状态栏样式(关于可用样式的信息请参考“状态栏”一节)。显示一幅酷似应用程序初始屏幕的启动图像。这减少了用户感知到的应用程序的启动时间。要了解更多有关的信息,请参考“启动图像”。避免显示“关于”窗口,启动画面,也不要提供任何其他类型的妨碍用户立即使用应用程序的体验。默 阅读全文
posted @ 2011-05-25 16:52 一个人的天空@ 阅读(704) 评论(0) 推荐(0)
摘要: 当您开发iPhone应用程序时,您需要了解iPhone OS以及移动设备环境的各个方面给您的设计带来的影响。本章涵盖了从产品定义到品牌宣传的一系列程序设计问题的指导方针,并介绍了在iPhone应用程序中是如何解决这些问题的。给出产品定义说明在开始设计您的应用程序之前,精确定义您的应用程序是用来做什么的非常重要。一个比较好的方法是撰写一份产品定义说明—用于描述您的应用程序的主要功能及目标用户的文档。创建产品定义说明不仅仅是一种练习,相反地,它是将一系列产品功能转化成一个清晰完整的产品的最佳方法之一。首先,花些时间定义您的目标用户:他们是专家还是新手?是严谨的还是随和的?是带着特定任务来寻求帮助还 阅读全文
posted @ 2011-05-25 16:50 一个人的天空@ 阅读(546) 评论(0) 推荐(0)
摘要: 优秀的用户界面应该遵循一些人机界面设计准则,这些准则来源于人—也即用户—思考和工作的方式,而不是设备的能力。没有吸引力的,令人难以理解的或是不合逻辑的用户界面会让一个原本优秀的程序成为垃圾,而漂亮,直观而又吸引人的用户界面不仅可以改善程序的功能,还能激发用户的正面依赖感。即使您已经对基本的设计准则有所了解,这一章也值得您读一下,因为本章着重讲述了这些准则是如何应用在iPhone应用程序中的。隐喻尽可能按照现实世界中的对象和操作来对您程序中的对象和操作建模。这能够帮助用户,尤其是新手,迅速地理解您的应用程序的是如何工作的。文件夹就是一个典型的软件隐喻。因为在现实世界中,人们将文件放在文件夹里,所 阅读全文
posted @ 2011-05-25 16:49 一个人的天空@ 阅读(724) 评论(0) 推荐(0)
摘要: iPhone OS支持很多类型的软件,从基于Safari的Web应用,到iPhone本地应用程序,都可以运行在iPhone OS设备上。本章概要地介绍了为iPhone OS设备创建不同类型软件的解决方案。如果您刚接触该平台,您应先阅读第一节中iPhone OS设备和其他计算机的差异总结,“牢记平台间的差异”。虽然此节的信息并不全面,但已经包含了您在设计iPhone应用程序时需要意识到的问题。接下来,本章阐述了设计不同应用程序风格和特点时的思维方式,以帮助您设计iPhone应用程序。本章也阐述了如何将现有的Mac OS X应用程序转换为iPhone OS版本的应用程序。牢记平台间的差异iPhon 阅读全文
posted @ 2011-05-25 16:49 一个人的天空@ 阅读(364) 评论(0) 推荐(0)
摘要: iPhone和iPod touch融合了革命性的多点触摸技术和多种强大功能,如电子邮件,即时通信,全功能网页浏览器和iPod等,另外iPhone还具有移动电话的功能。iPhone OS是在iPhone和iPod touch上运行的系统软件。随着iPhone SDK的发布,这些强大的功能为开发人员提供了众多的开发可能。开发者不但可以创建在iPhone OS设备上使用的网页内容,还可以使用iPhone SDK来创建在设备中储存和使用的本地程序。本文档可以帮助您了解可以为iPhone OS创建何种类型的应用程序以及优秀iPhone程序基础的人机界面设计准则。在本文档中,您可以了解到如何在设计最佳用户 阅读全文
posted @ 2011-05-25 16:47 一个人的天空@ 阅读(213) 评论(0) 推荐(0)
摘要: 在传统的桌面应用程序中,偏好设置是一些专门面向应用程序的设置,用于配置应用程序的行为和外观。iPhone OS也支持应用程序偏好设置,但并不将它作为应用程序整体的一部分。在iPhone OS上,应用程序级别的偏好设置并不由各个程序本身的定制界面来显示,而是由系统提供的Settings程序统一显示。为了将定制的应用程序偏好设置集成到Settings程序中,您必须在应用程序包的顶级目录中包含一个特殊格式的Settings程序包,由它负责将应用程序的偏好设置信息提供给Settings程序,而Settings程序则负责对其进行显示,并将用户提供的值写入偏好设置数据库。在运行时,您的应用程序可以通过标准 阅读全文
posted @ 2011-05-25 16:45 一个人的天空@ 阅读(2792) 评论(0) 推荐(0)
摘要: iPhone OS支持很多使移动计算的用户体验更具吸引力的特性。通过iPhone OS,应用程序可以访问诸如加速计和照相机这样的硬件特性,也可以访问像用户照片库这样的软件特性。本文的下面部分将描述这些特性,并向您展示如何将它们集成到您的应用程序中。确定硬件支持是否存在为iPhone OS设计的应用程序必须能够运行在具有不同硬件特性的多种设备上。虽然像加速计和Wi-Fi连网这样的特性在所有设备上都是支持的,但是一些设备不包含照相机或GPS硬件。如果您的应用程序要求设备具有这样的特性,应该在用户购买之前通知他们。对于那些不是必需、但如果存在就希望支持的特性,则必须在试图使用之前检测它们是否存在。重 阅读全文
posted @ 2011-05-25 16:44 一个人的天空@ 阅读(1981) 评论(0) 推荐(0)
摘要: 无论多媒体功能在您的应用程序中是处于中心地位,还是偶尔被使用,iPhone用户都期望有很高的品质。视频应该充分利用设备携带的高分辨率屏幕和高帧率,而引人注目的音频也会对应用程序的总体用户体验有不可估量的增强作用。您可以利用iPhone OS的多媒体框架来为应用程序加入下面这些功能:高品质的音频录制和回放生动的游戏声音实时的声音聊天用户iPod音乐库内容的回放在支持的设备上进行视频的回放和录制本章将介绍iPhone OS上为应用程序添加音视频功能的多媒体技术。在iPhone OS上使用声音iPhone OS为应用程序提供一组丰富的声音处理工具。根据功能的不同,这些工具被安排到如下的框架中:如果希 阅读全文
posted @ 2011-05-25 16:42 一个人的天空@ 阅读(2746) 评论(0) 推荐(0)
摘要: 运行在iPhone OS系统上的应用程序可以通过各种Core OS和Core Services框架来访问本地的文件系统和网络。读写本地文件系统的能力使您可以保存用户数据和应用程序状态,以备后用;而访问网络的能力则使您可以和网络服务器进行交流,进而实现远程操作的执行和数据的收发。文件和数据管理iPhone OS系统上的文件和用户的媒体数据及个人文件共享闪存上的空间。出于安全的目的,您的应用程序被放在其自己的目录下,并且只能对该目录进行读写。本章的下面部分将描述应用程序本地文件系统的结构及几个读写文件的技术。常用目录出于安全的目的,应用程序只能将自己的数据和偏好设置写入到几个特定的位置上。当应用程 阅读全文
posted @ 2011-05-25 16:41 一个人的天空@ 阅读(914) 评论(0) 推荐(0)
摘要: iPhone OS文本系统的设计者考虑了移动设备用户的基本需求,将文本系统设计为电子邮件和SMS程序中常用的单行和多行文本输入控件。文本系统支持Unicode,且包含几个不同的输入法,方便显示和读取不同语言的文本。关于文本和Web的支持iPhone OS的文本系统提供了大量的功能,同时又非常简单易用。UIKit框架中包含几个高级类,负责管理文本的显示和输入。该框架还含有一个更为高级的类,用于显示HTML和基于JavaScript的内容。本文的下面部分将描述iPhone OS对文本和web内容的基本支持。如果您需要这里列举的各个类的更多信息,请参见UIKit框架参考。文本视图UIKit框架提供三 阅读全文
posted @ 2011-05-25 16:40 一个人的天空@ 阅读(695) 评论(0) 推荐(0)
摘要: 高质量的图形是应用程序用户界面的重要组成部分。提供高质量的图形不仅会使应用程序具有好的的外观,还会使它看起来象是系统的自然扩展。iPhone OS为创建高质量的图形提供两种路径:即通过OpenGL进行渲染,或者通过Quartz、Core Animation、和UIKit进行渲染。OpenGL框架主要适用于游戏或要求高帧率的应用程序开发。它是一组基于C语言的接口,用于在桌面电脑上创建2D和3D内容。iPhone OS通过OpenGL ES框架来支持OpenGL描画,该框架同时支持OpenGL ES 2.0和OpenGL ES v1.1。OpenGL ES是特别为嵌入式硬件系统设计的,和桌面版本的 阅读全文
posted @ 2011-05-25 16:39 一个人的天空@ 阅读(1628) 评论(0) 推荐(0)
摘要: 本章将描述iPhone OS系统中的事件类型,并解释如何处理这些事件。文中还将讨论如何在应用程序内部或不同应用程序间通过UIPasteboard类提供的设施进行数据的拷贝和粘贴,该类是iPhone OS 3.0引入的。iPhone OS支持两种类型的事件:即触摸事件或运动事件。在iPhone OS 3.0中,UIEvent类已经被扩展为不仅可以包含触摸事件和运动事件,还可以容纳将来可能引入的其它事件类型。每个事件都有一个与之关联的事件类型和子类型,可以通过UIEvent的type和subtype属性声明进行访问,类型既包括触摸事件,也包括运动事件。在iPhone OS 3.0上,子类型只有一种 阅读全文
posted @ 2011-05-25 16:38 一个人的天空@ 阅读(1698) 评论(2) 推荐(0)
摘要: 窗口和视图是为iPhone应用程序构造用户界面的可视组件。窗口为内容显示提供背景平台,而视图负责绝大部分的内容描画,并负责响应用户的交互。虽然本章讨论的概念和窗口及视图都相关联,但是讨论过程更加关注视图,因为视图对系统更为重要。视图对iPhone应用程序是如此的重要,以至于在一个章节中讨论视图的所有方面是不可能的。本章将关注窗口和视图的基本属性、各个属性之间的关系、以及在应用程序中如何创建和操作这些属性。本章不讨论视图如何响应触摸事件或如何描画定制内容,有关那些主题的更多信息,请分别参见“事件处理”和“图形和描画”部分。什么是窗口和视图?和Mac OS X一样,iPhone OS通过窗口和视图 阅读全文
posted @ 2011-05-25 16:35 一个人的天空@ 阅读(2930) 评论(0) 推荐(0)
摘要: 本附录介绍iOS系统包含的框架,它们为编写iOS平台的软件提供必要的接口。下面的表格尽可能地列出框架中的类、方法、函数、类型以及常量使用的关键前缀,请避免在您的符号名称中使用这些前缀。设备中的框架表B-1描述iOS设备提供的框架,它们位于<Xcode>/Platforms/iPhoneOS.platform/Developer/SDKs/<iOS_SDK>/System/Library/Frameworks目录。路径中的<Xcode>表示Xcode的安装目录,<iOS_SDK>则表示目标SDK版本。表中标题为“最先引入”的那一列表示首次引入相关框 阅读全文
posted @ 2011-05-25 16:10 一个人的天空@ 阅读(6769) 评论(0) 推荐(2)
摘要: Core OS层的底层功能是很多其他技术的构建基础。通常情况下,这些功能不会直接应用于应用程序,而是应用于其他框架。但是,在直接处理安全事务或和某个外设通讯的时候,则必须要应用到该层的框架。Accelerate 框架iOS 4.0引入了Accelerate框架(Accelerate.framework)。该框架的接口可用于执行数学、大数字以及DSP运算。和开发者个人编写的库相比,该框架的优点在于它根据现存的各种iOS设备的硬件配置进行过优化。因此,您只需一次编码就可确保它在所有设备高效运行。如需要进一步了解Accelerate框架,请查看Accelerate框架参考。External Acce 阅读全文
posted @ 2011-05-25 16:07 一个人的天空@ 阅读(869) 评论(0) 推荐(0)
摘要: Core Services层为所有的应用程序提供基础系统服务。可能应用程序并不直接使用这些服务,但它们是系统很多部分赖以建构的基础。高阶特性下面的部分描述一些比较常见特性,也许您正打算让您的应用程序支持这些特性。块对象iOS 4.0引入了块对象。块对象是C级别的构造,您可以在C或Objective-C代码中使用快对象。从本质上说,块对象本质上是一个匿名函数加上该函数的伴随数据。有些时候,其他语言也称块对象为closure或者lambda。块对象非常适用于回调函数。如果您需要有很便捷的方法将执行代码和相关数据组合在一起,块对象也是很好的选择。在 iOS系统中,块对象通常用于下述场合:作为委托或委 阅读全文
posted @ 2011-05-25 16:05 一个人的天空@ 阅读(1625) 评论(0) 推荐(0)
摘要: 媒体层包含图形技术、音频技术和视频技术,这些技术相互结合就可为移动设备带来最好的多媒体体验,更重要的是,它们让创建外观音效俱佳的应用程序变得更加容易。您可以使用iOS的高级框架更快速地创建高级的图形和动画,也可以通过底层框架访问必要的工具,从而以某种特定的方式完成某种任务。图形技术高质量的图形是iOS应用程序的重要组成部分。创建应用程序最简单最有效的方法是使用事先渲染过的图片,搭配上标准视图以及UIKit框架的控件,然后把绘制任务交给系统来执行。但是在某些情况下,您可能需要一些UIKit所不具有的功能,而且需要定制某些行为。在这种情况下,您可以使用下述技术管理应用程序的图形内容:Core Gr 阅读全文
posted @ 2011-05-25 15:51 一个人的天空@ 阅读(510) 评论(0) 推荐(0)
摘要: Cocoa Touch层包含创建 iOS应用程序所需的关键框架。上至实现应用程序可视界面,下至与高级系统服务交互,都需要该层技术提供底层基础。在开发应用程序的时候,请尽可能不要使用更底层的框架,尽可能使用该层的框架。高级特性下面章节描述一些常见特性,也许您也正打算在应用程序支持这些特性。多任务如果应用程序构建于iPhone SDK 4.0及其后续版本(且运行于iOS 4.0及后续版本操作系统),则点击Home键的时候,应用程序不会结束,而是切换到后台。对于大多数应用程序来说,进入后台,它们就会进入挂起状态。让应用程序驻留在后台可以避免以后的重新启动过程,应用程序可以直接将自己激活,这在很大程度 阅读全文
posted @ 2011-05-25 15:45 一个人的天空@ 阅读(828) 评论(0) 推荐(0)
摘要: iOS是运行于iPhone、iPod touch以及 iPad设备的操作系统,它管理设备硬件并为手机本地应用程序的实现提供基础技术。根据设备不同,操作系统具有不同的系统应用程序,例如Phone、Mail以及Safari,这些应用程序可以为用户提供标准系统服务。iPhone SDK包含开发、安装及运行本地应用程序所需的工具和接口。本地应用程序使用iOS系统框架和Objective-C语言进行构建,并且直接运行于iOS设备。它与web应用程序不同,一是它位于所安装的设备上,二是不管是否有网络连接它都能运行。可以说本地应用程序和其他系统应用程序具有相同地位。本地应用程序和用户数据都可以通过iTune 阅读全文
posted @ 2011-05-25 15:34 一个人的天空@ 阅读(752) 评论(0) 推荐(0)
摘要: 了解并解决代码签名问题(为保持跟开发环境以及APPLE开发者社区网站结构对应,一些名词未作翻译) 绝大多数iPhone Developer/Distribution 的代码签名生成错误是因为证书和Provisioning profiles没有在开发系统上正确安装引起的。本文描述在开发 iPhone OS 应用程序时所需要的文件以及如何安装它们。这个技术说明为“Program User Guide”提供支持,Program User Guide 可以在 Portal Resources 下的 iPhone Developer Program Provisioning Portal 找到。如果你对 阅读全文
posted @ 2011-05-25 13:29 一个人的天空@ 阅读(2180) 评论(0) 推荐(0)