重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Tutorial: Basics
创新互联建站-云计算及IDC服务提供商,涵盖公有云、IDC机房租用、服务器主机托管、等保安全、私有云建设等企业级互联网基础服务,服务电话:13518219792
教程:基础知识
本教程带你了解一个应用程序的基础知识,通过创建一个简单的 用户界面 ,并且添加自定义行为来转换工作应用程序的接口。
跟随这个教程学习iOS应用程序开发的基础,包括:
如何使用Xcode创建并管理项目
如何识别Xcode项目的关键部分
如何添加标准用户界面元素到你的应用程序
如何构建和运行应用程序
在即结束本教程之后,你将拥有一个看上去如下所示的应用程序:
为简单起见,本教程项目只有一个iPhone界面,但是你可以在开发iPad应用程序时使用完全相同的工具和技术。这个教程使用Xcode 5.0 和 iOS SDK 7.0。
Create a New Project
创建一个新工程
想要开始开发应用程序,需要创建一个新的Xcode工程。
Xcode 包括几个内建的应用程序模板,你能够使用他们开发通用模式的iOS应用程序,例如游戏、基于导航标签的应用程序、和基于表格视图的应用程序。这些模板的大部分在开始工作时都为你都配置了接口和源代码文件。在本教程中, 你将从最基本的空应用程序(Empty Application)开始。
使用空应用程序模板将帮助你了解一个iOS应用程序的基础结构,和如何使内容显示在屏幕上。在你学到这一切是如何工作之后,你能够为你的应用程序使用其他模板来节省配置的时间。
创建一个空的项目
1.从目录/Applications 打开Xcode
Xcode欢迎窗口出现。
如果一个工程窗口而不是欢迎窗口出现,不要担心——你或许创建或打开了一个以前的Xcode项目。只要使用下面步骤中的菜单项来创建项目。
2.在欢迎窗口,点击“创建一个新的Xcode 项目(Create a new Xcode project)”(或者选择File > New > Project)。
Xcode打开一个新窗口且显示一个对话框,在对话框中你可以选择一个模板。
3.在左侧对话框左侧的iOS部分,选择应用程序(Application)。
4.在对话框的主区域,点击空应用程序(Empty Application)然后点击Next。
5.在出现的对话框中,命名你的应用程序,且为你的项目选择附加选项。
使用如下值:
Product Name:ToDoList
Xcode 使用你输入的名称命名你的应用程序和项目。
Company Identifier: 你的公司标识,如果你有的话。如果你没有,使用com.example.
Class Prefix:XYZ
Xcode 使用带有前缀的类名。Objective-C 的类的名字必须是任何框架或你可能使用的束中是独一无二的。想要保持独特的类名,所有的类使用前缀是通常的做法。两个字母前缀是苹果保留用于框架的类,所以要使用三个或更长的字母作为前缀。
6.从弹出的设备菜单中选择iPhone。
正如已经提到的,用iPhone界面创建一个应用程序是开始时最简单的方法。这些技术同样适用于iPad和通用的应用程序。
7.点击Next。
8.在出现的对话框中,为你的工程选择一个保存位置并点击创建(Create)。
Xcode在窗口中打开你的新工程(叫做workspace window,工作区窗口),应该类似于下图:
Get Familiar with Xcode
熟悉Xcode
Xcode包含了创建一个应用程序所需的所有内容。它不仅组织创建的应用程序的文件,而且它还提供代码编辑器和界面元素,允许你创建并运行应用程序,而且还包括一个强大的集成调试器。
花一点时间来熟悉Xcode 的工作区。在本教程剩下的部分中,你将使用下面窗口中表示的控制部分。点击不同的按钮以了解它是如何工作的。如果你想要更多的关于界面上个部分的信息,请阅读它的帮助文档——你可以通过Control+点击Xcode的区域且在弹出的快捷菜单中找到它们。
Run iOS Simulator
运行iOS模拟器
因为你的项目基于一个Xcode模板,所以基本的应用程序环境是自动为你设置好的。即使你没有编写任何代码,你也能够构建并运行一个空应用程序模板而不必添加任何额外的配置。
构建并运行你的应用程序,及就可以使用 iOS Simulator(iOS模拟器)应用程序,它包含在Xcode中。Xcode 模拟器给你一个你的应用程序运行在iOS设备上的时候所拥有的外观和行为的一种方式。
iOS模拟器可以模拟多种类型的硬件——iPad、iPhone的各种不同的尺寸,等等。因此,你能够模拟在所有设备上进行开发。在本教程中,使用iPhone Retina(4-inch)选项。
在iOS模拟器上运行你的应用程序
1.在Xcode工具条上弹出的方案(Scheme)菜单中选择 iPhone Retina (4-inch) 。
继续浏览这个菜单,看看其他的可用在iOS模拟中的硬件选项。
2.点击Run按钮,位于Xcode工具条左上角。
或者,你可以选择 Product > Run (或者 Command+R)。
如果这是你第一次运行应用程序,Xcode会问你是否在你的Mac上授权开发者模式。开发者模式允许Xcode访问某些调试属性而不必每次填写你的密码。跟随提示,决定是否允许使用开发者模式。如果你不选择允许,你或许会被要求填写密码。本教程假设你的开发者模式已经启动。
3.观察Xcode工具条的构建进度直到完成。
Xcode在activity viewer显示关于构建进度的信息,它在工具条的中间位置。
在Xcode完成构建后,iOS模拟器开始自动启动。它在第一次运行的时候或许需要一段时间。
iOS模拟器在iPhone模式下打开,就像你指定的一样。在模拟器的iPhone屏幕上打开你的应用程序。
如其名称 空应用程序,这个模板只显示一个白色的屏幕。其他的模板有更复杂一点的行为。重要的是在扩展它到你的应用程序之前理解模板的使用。运行没有修改的模板是开始开发的聪明方式。
探讨了应用程序之后,通过选择iOS Simulator > Quit iOS Simulator (或者Command+Q)退出iOS模拟器。
Review the Source Code
查看源代码
空应用程序模板拥有一些现有的源代码文件,它们设置应用程序环境。大部分的工作通过UIApplicationMain 函数完成,它是自动调用你的工程的main.m 源文件。UIApplicationMain函数创建一个应用程序对象,它为你的应用程序在iOS系统上工作设置基础结构。包括创建运行循环( run loop)为应用程序提供输入事件。
你不必直接处理main.m源文件,但了解他是如何工作的也非常有意思。
查看main.m源文件
1.确保项目导航区域的导航器打开。
项目导航器(project navigator)显示项目中所有的文件。 如果项目导航器没有打开,点击导航器选择条最左侧的按钮。
2.在工程导航器中通过点击紧挨着它的展开三角(disclosure triangle)打开支持文件(Supporting Files)文件夹。
3.选择main.m.
Xcode在窗口的主编辑区打开源代码文件,如下图所示:
如果你双击这个文件,你将看到他会在一个单独的窗口中打开。你能够选择两种方式打开它。
在main.m 中的main函数 在自动释放池中调用UIApplicationMain 函数。
.@autoreleasepool{
.
.returnUIApplicationMain(argc,argv,nil,NSStringFromClass([XYZAppDelegateclass]));
.
.}
.
声明为你的应用程序提供内存管理支持。自动引用计数(Automatic Reference Counting (ARC))通过编译器跟踪对象的拥有者来简化内存管理。@autoreleasepool 是基础内存管理的一部分。
调用UIApplicationMain 创建了两个应用程序的重要初始化组件:
一个UIApplication 类的实例,叫做应用程序对象(application object)。
应用程序对象管理应用程序事件循环和协调其他高级应用程序的行为。这个类,定义在UIKit框架中,不需要你编写任何额外的代码来让他工作。
一个XYZAppDelegate 类的实例, 叫做应用程序委托(app delegate)。
Xcode在设置空应用程序模板的时候同时创建了这个类。应用程序委托创建一个窗口用来放置应用程的内容,而且为应用程序状态转换的提供地方。这个窗口是你编写自定义的应用程序级代码的地方。像所有的类一样,XYZAppDelegate 类在应用程序中定义了两个源代码文件:接口文件XYZAppDelegate.h和实现文件XYZAppDelegate.m。
这儿书名应用程序对象和应用程序委托是如何交互的。当你的应用程序启动时,应用程序对象调用在应用程序委托中的定义方法给你的自定义的代码去做它的工作——这是一个应用程序被执行的行为有趣的地方。想要理解应用程序委托更深层次的作用,查看你的应用程序接口文件,在工程导航器中选择XYZAppDelegate.h。应用程序委托接口包含一个单独的属性:window。通过这个属性,应用程序代理跟踪所有画在这个窗口中的你的应用程序的内容。
接下来,查看应用程序委托实现文件。要做到这点,选择工程导航器中的XYZAppDelegate.m。应用程序委托实现包含重要方法的“骨架(skeletons)”。这些预定义的方法允许应用程序对象来和应用程序委托进行通话。在一个重要运行事件期间——应用程序对象调用在应用程序委托里的类似方法,给他一个机会来做出适当相应。你不需要做任何特殊的事情来确保这些方法在正确的时间被调用——应用程序对象为你处理了这部分工作。
所有这些自动实现的方法都拥有默认的行为。如果你不识闲这些骨架或者从你的XYZAppDelegate.m 文件中删除他们,你还是会在这些方法被调用的时候得到默认的行为。使用这些骨架来添加额外的自定义代码,已使得这些方法被调用的时候得到你想要的效果。举个例子,在XYZAppDelegate.m文件的第一个方法包含几行代码,这些方法设置应用程序窗口并且在你第一次运行你的应用程序的时候得到一个白色的背景。在本教程中,你将不会使用任何自定义的应用程序委托代码,所以继续且移除那些设置窗口为纯白色背景的代码。
设置应用程序委托实现文件
1.在XYZAppDelegate.m中找到application:didFinishLaunchingWithOptions: 方法。
它是这个文件的第一个方法。
2.从这个方法中删除头三行代码。如下所示:
.-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions
.
.{
.
.returnYES;
.
.}
3.
4.
Xcode自动保存更改。Xcode继续跟踪且保存你所有的工作。(你可以通过选择Edit > Undo Typing来不做你的修改。)
Create a Storyboard
创建故事板(Storyboard)
此时,你已经准备好为你的应用程序创建一个故事板。故事板是一个应用程序用户界面的可视化表现,显示屏幕里包含的内容和他们之间的转换。使用故事板来安排流——或者故事——来驾驭你的应用程序。
想要看到故事板如何融入到一个应用程序中,在这个教程里你将手动创建一个且把它添加到你的应用程序中。与你开始的空应用程序模板不懂,其他Xcode模板包含预置的故事板提供视图、视图控制器、和关联的源代码文件(这些源代码文件为这个类型的应用程序设置了基本的架构)。在你手动设置完故事板之后,你将看到如何把各部分放在一起。然后你将能开始一个附带有故事板的项目模板,浙江为你节省一些花销。
创建一个新的故事板
1.选择 File > New > File (或者 Command+N).
出现一个对话框,提示你为你的新文件选择模板。
2.在左侧,在iOS下选择用户界面(User Interface)
3.点击故事板,点击Next。
4. 在Devices选项,选择iPhone。
5.点击Next。
出现一个对话框,提醒你选择一个位置和命名你的新故事板。
6.在Save As字段里,命名文件为Main.
7.确保文件保存到和你的项目所在的目录下。
8.在Group 选项,选择ToDoList。
9.在Targets, 选择ToDoList旁边的复选框。.
这个选项告诉Xcode当构建你的应用程序的时候包含这个新的故事板。
10. 点击创建。
一个新的故事板文件被创建,且添加到了你的项目。你将在这个文件中安排应用程序的内容。
现在你需要高旭Xcode你想要使用这个故事板作为应用程序的接口。当它启动的时候,应用程序对象检查应用程序是否有主界面配置。如果有,当应用程序启动的时候,应用程序对象加载定义的故事板。
设置故事板作为应用程序的主界面。
1.在工程导航器,选择你的工程。
在工作空间窗口的编辑区域,Xcode显示工程编辑器,它允许你查看和编辑关于你的应用程序是如何构建的细节。
2.在Targets下,选择ToDoList。
如果项目和目标列表没有现在项目编辑器中,点击编辑器边框左上角的多层三角形来显示这个列表。
3.选择General选项卡。
4.在部署信息(Deployment Info)下,找到主界面选项。
5.选择你的故事板,Main.storyboard.
Add a Scene to Your Storyboard
添加一个场景到你的故事板
现在你有了个故事板,是时候开始添加应用程序内容了。Xcode提供一个对象库,你能向里面添加故事板文件。它们当中的一些是用户界面元素,这些元素属于视图,例如按钮和文本字段。另外一些定义了你的应用程序的行为,但它们自身不出现在屏幕上,例如视图控制器和手势识别器。
To start, you’ll add a view controller to your storyboard. A view controller manages a corresponding view and its subviews. You’ll learn more about the roles of views and view controllers in the next chapter首先,你将添加一个视图控制器到你的故事板。一个视图控制器管理一个相应的视图和它的子视图。你在下一章App Development Process将学习到更多的关于视图和视图控制器的作用。
添加一个视图控制器到你的故事板
1.在工程导航器中,选择Main.storyboard.
在编辑区的Interface Builder(可视化界面编辑器)中打开故事板。因为故事板是空的,所以你看的是一个空白的画布(canvas)。已使用这个画布来添加和安排用户界面元素。
2.打开对象库。
对象库Object library出现在工区去的底部。如果你没有看到对象库,你可以点击它的按钮,它在库选择器条上从左开始的第三个按钮。(若果你没有看到工具去,你可以通过选择View > Utilities > Show Utilities来显示它。)
列表显示了每个对象的名字、描述和可视化表示。
3.将一个视图控制器对象从列表中拖拽到画布。
如果你没有在对象库中找到这个对象的标题“View Controller”,通过在列表底部的文本字段输入对象来过滤列表。输入View Controller你将会在过滤的列表中看到唯一的视图控制器对象。
在这一点上,应用程序的故事板包含一个场景。在画布上指向左边场景的箭头是初始化场景指示器(initial scene indicator),这意味着这个场景是在应用程序开始的是后就被加载。现在,这个你看到的在画布中的场景包含一个单独的视图,它被一个视图控制器管理。如果你在iOS模拟器上运行应用程序,至二个视图是你在设备屏幕上看到的内容。在iOS模拟器上运行你的应用程序来核实所有的东西都正确的配置是非常有用的。在这样做之前,添加一些当你在运行应用程序的时候可以被看到的东西到场景中。
谈价一个标签到你的场景中
1.在对象库,找到标签(Label)对象。
如果你在过滤器文本字段输入文本,你或许需要清除它的内容在你看到标签对象前。你也能在过滤器字段里输入Label 来快速查找标签对象。
2.从列表中拖拽标签对象到你的场景。
3.拖拽标签到场景的中间,直到横竖标线出现。
当你看到如下图的情况是,停止拖拽:
标线意味着标签现在正在正中间。(标线只有在拖拽或在它们旁边改变对象的尺寸的时候出现,所以它们将在你放手标签对象的时候消失。)
4.双击标签的文本来选择编辑它。
5.输入Hello, World! 然后按返回键。
如果有必要,重定位这个标签。
Test Your Changes
测试你的改变
在iOS模拟器上运行你的应用程序是一个定期检查每件事情是否如你希望般工作的伟大的方法。此时你的应用程序应该启动且加载你在主故事板上创建的场景。点击Xcode上的运行按钮。已将看到如下图所示的内容:
如果你没有看到你加载的标签,请确保你创建的故事板已配置为应用程序的主界面,且确保你移除了应用程序委托中的创建空白窗口的代码。这非常有必要,回去且重复这些部分的步骤。
这也是一个很好的机会来试验你能添加什么到界面。通过如下选择,探索Interface Builder:
标签的文字。
标签的字体大小。
字体的颜色。
Build the Basic Interface
构建基本界面
现在你能在场景中安置内容,是时候构建基本的界面,为你添加一个新的项目到待办事项清单的场景。
想要添加一个项目到待办事宜清单,你需要一个信息:项目的名字。你从一个文本字段得到这个信息。文本字段是界面元素,它让用户使用键盘输入单行的文本。但首先,你需要移除你之前添加的标签。
从场景中移除标签
1.点击标签选择它。
2.按删除键。
标签被从场景中移除。如果这不是你想要的,你可以选择Edit > Undo Delete Label。(所有编辑器都有一个Edit > Undo command来不做最近的操作。)
现在你有有了一个空白的画布,添加一个待办事宜项目来创建一个场景。
添加文本字段到你的场景
1.这很有必要,打开对象库。
2.从列表中拖拽文本字段对象到你的场景。
3.拖拽文本字段到离屏幕底部三分之二的位置。
4.如有必要,点击文本字段显示调整处理。
你通过拖拽一个UI元素的resize handles来调整它,它是一个出现在元素边界上的白色小矩形。你可以通过选择元素来显示它的resize handles。在这个例子中,文本字段应该已经被选择,因为你刚刚停止拖拽它。如果你的文本字段看上去像下面的一样,你已经准备好调整它了。如果不是,在画布上选择它。
5.调整文本字段的左边和右边直到你看到垂直引导线出现为止。
当你看到如下图所示时,停止调整文本字段。
虽然在你的场景中有了一个文本字段,但是没有告诉用户要向这个字段输入的说明。使用文本字段的占位符文本来提示用户要输入一个新的待办事宜项目的名字。
设置文本字段占位符文本
1.选中文本字段,在工具区域打开属性检查器 。
当你选择检查器选择器条从左开始第四个按钮的时候,属性检查器( Attributes inspector)会出现。 它让你编辑你的故事板中的一个对象的属性。
2.在属性检查器中,找到字段标签占位符(Placeholder)并且输入New to-do item.
想要在文本字段显示新的占位符,按回车键。
检查点:在iOS模拟器上运行你的应用程序来确保你创建的场景如你希望的一样工作。亦应该能够点击文本框的内部并且能够用键盘输入字符串。
Recap
回顾
你现在可以通过使用故事板创建一个基本接口。在接下来的教程中,你将会学到更多关于添加交互到你的界面,以及编写代码来创建自定义的行为。这些教程中之间的章节,指导你在使用应用程序的时候,让你把概念辅助实施。
Setup
App Development Process
Copyright 2014 Apple Inc. All rights reserved. Terms of Use | Privacy Policy | Updated: 2013-10-22