
项目要求写一个iPhone程序在屏幕正中显示文字“Hello Word”粗体字体大小26磅字体颜色红色有黑色阴影阴影光源为左上角偏移1像素支持设备旋转。需求分析在开始之前我们首先来分析一下项目需求这是一个非常简单的项目只要在屏幕上显示一段“Hello World”的文字当然还有一些附加条件对字体、字体颜色、字体大小有要求有阴影效果要求文字显示在屏幕正中支持设备旋转并且无论设备如何旋转文字都还是显示在屏幕正中根据这些需求我们将从简单到复杂逐步来实现分成2步来实现在屏幕上显示文字设置字体和字体大小让文字显示在屏幕正中心支持设备旋转并且保证旋转后文字还是居中状态产品设计iPhone4之前的屏幕是320x480到iPhone4的时候支持了高清屏屏幕分辨率变成了640x960。iPhone支持四个方向的旋转的横屏和竖屏表现略有差异因为项目需求要求支持屏幕旋转所以针对横屏和竖屏界面表现有所差异简单画一下原型设计图如下编辑 编辑系统分析和设计如果我们还没iOS下的开发经验那么首先需要去查阅一些相关资料让我们知道如何来开发一个iphone程序。苹果为iOS的开发者提供了一个非常详细和全面的网站“iOS Developer Center”网址http://developer.apple.com/ios。在iOS Dev Center有所有iOS SDK的类文档、入门文档、各种开发指南、示例代码库等开发iOS平台的项目免不了要经常上来查阅一些相关资料。不过比较遗憾的是目前iOS Dev Center的文档和资料还是英文为主中文资料较少对于英文阅读不好的同学是一个考验。编辑现在我们从技术角度来分析一下如何实现项目需求。同样一个项目无疑是有很多种技术方案来实现的所以我们有必要定一个原则来帮助我们选择合适的方案这个原则就是简单实用原则“我们尽可能采用简单并且实用的技术方案避免使用复杂的技术方案把时间和精力浪费在一些华而不实的技巧上面”本着这个原则我们来开始对项目需求进行技术方案的选择在屏幕上显示特定字体和大小的文字要在屏幕上显示特定字体和大小的文字我们需要先看看iOS SDK中是否已经提供了简单实用的方式来显示文字在iOS Dev Center中有一篇文章“iOS Human Interface Guidelines”专门讲解了iOS中用户界面相关的知识从中我们可以系统的了解iOS的界面构成各种基本界面元素并且根据其中的说明可以找到UILabel控件是最适合我们项目需求的控件当然也有复杂的技术方案就是采用在界面上自画的方式根据简单实用原则我们就使用UILabel这种iOS自带控件就可以了。编辑在开始使用UILabel之前我们需要先来学习了解一下UILabel控件想要了解UILabel控件的功能在iOS Dev Center中找到“UILabel Class Reference”从中我们可以看到UILabel的介绍和所有属性、方法等详细的说明文档。编辑文档相当全面不过对于我们来说关键还是要去获取项目相关的资料从文档中我们可以逐一找到我们显示文字需要的相关属性text: Label显示的文字类型为NSString类也就是本项目需求中要显示的“Hello World”。textAlignment: 文字在Label内的对其方式类型为UITextAlignment枚举在本项目需求中要求文字在屏幕正中显示对应的属性值为UITextAlignmentCenter。font: 文字的字体和大小类型为UIFont类也就是本项目需求中要求的“字体为粗体字体大小26磅”对应代码为[UIFont boldSystemFontOfSize:26]。textColor: 文字的颜色类型为UIColor类也就是本项目需求中要求的“字体颜色红色”对应代码为[UIColor redColor]。shadowColor: Label文字的阴影颜色类型为UIColor类也就是本项目需求中要求的“有黑色阴影”对应代码为[UIColor blackColor]。shadowOffset: Label文字阴影的偏移方向和偏移量类型为CGSize也就是本项目需求中要求的“阴影光源为左上角偏移1像素”对应代码为[CGSizeMake(1, 1)]。让文字显示在屏幕正中心要让文字显示在屏幕正中心我们要优先考虑设置UILabel相关属性达到目的的方式如果没有UILabel相关属性支持那么我们就必须根据UILabel占的大小和屏幕大小来计算它应该摆放的坐标从而实现让文字显示在屏幕正中心。在UILabel的文档中没有发现有属性设置它的坐标也没有设置对其的属性这是不是代表UILabel不支持呢不要忽略一个问题iOS所用的编程语言是Objective-C这个一个类似于C语言的很好的支持面向对象特性的语言面向对象有个很重要的特性叫继承同样对于UILabel类来说它是有父类的也就是UILabel父类支持的属性UILabel都是支持的在UILabel文档的首页我们可以看到UILabel是从UIView继承的所以我们可以链接到“UIView Class Reference”文档。编辑从文档中我们可以找到2个重要属性用来实现文字显示在屏幕正中frame: Label的位置和尺寸属性类型为CGRect在本项目需求中要求显示在屏幕正中就需要通过Label控件的frame属性的size值结合主界面的尺寸计算出xy坐标值以保证Label显示在屏幕正中。autoresizingMask: 这个属性表示控件在其父容器尺寸发生变化时它是怎么自动调整其尺寸或上下左右各个方向边距的。支持屏幕旋转iPhone程序默认不支持屏幕旋转那么如何让界面支持旋转呢在iOS Dev Center中可以找到“View Controller Programming Guide for iOS”在其中的“Custom View Controllers”一章中专门有一节“Managing a View Controllers Interface Orientation”说明了如何让你的iOS界面支持设备旋转重写对应的View Controller的“shouldAutorotateToInterfaceOrientation:”方法在方法中申明支持的方向。配置对应的View Controller中的View的autoresizingMask属性以适应因为界面旋转导致的布局变化。在本项目中项目需求中要求设备在旋转也保证文字居中利用这个属性可以实现在界面旋转后窗体宽度和高度发生变化时UILabel还能继续居中。编辑项目开发熟悉Xcode 4经过前期的准备工作后现在可以开始基于Xcode4进行实际的项目开发。对于Xcode4在iOS Dev Center中找到“Xcode 4 User Guide”这是一个专门针对Xcode 4的说明和使用指南非常详细。编辑在Xcode 4中整合了原来专门用来编辑Mac或iOS项目界面的Interface Builder软件“Xcode 4 User Guide”中专门有一章“Designing User Interfaces in Xcode”来讲述如何在Xcode 4中编辑界面。编辑创建新项目启动Xcode4后首先会有一个欢迎窗口通过它点击“Create a new Xcode project”可以直接开始创建项目编辑当然也可以通过菜单或者快捷方式来开始创建新项目编辑选择新项目模板为方便生成项目Xcode4默认提供了几种项目模板Navigation-based Application: 该模板适用与需要界面导航的应用基于该模板生成的应用程序带一个导航显示一个列表项OpenGL ES Application: 该模板适用于基于OpenGL ES的应用程序例如游戏类程序。基于该模板生成的应用程序带一个用来输出OpenGL ES场景的视图和一个支持动画的视图Splite View-based Application: 该模板适用于需要用到左右分栏视图的iPad程序基于该模板生成的应用程序提供了一个左右分栏的界面控件Tab Bar Application: 该模板适用于适用采用标签页的应用程序基于该模板生成的应用程序默认带有标签页Utility Application: 该模板适用与有一个主界面和一个信息页的应用基于该模板生成的应用程序主界面上有一个信息按钮点击后有一个翻转动画切换到另一个信息界面View-based Application: 该模板适用于单一界面的应用基于该模板生成的应用程序只有一个空白界面视图Window-based Application: 该模板适用于空白的应用程序基于该模板生成的应用程序只有一个窗体没有任何视图需要手动添加编辑对于我们的Hello World项目来说最适合的项目模板是“View-based Application”我们只要基于它创建一个单一带有空白视图的应用然后再将UILabel拖到上面就可以实现基本功能。项目基本选项点击下一步进入“Choose options for your new project”界面在这里可以选择设置项目的基本选项其中Product Name: 指产品名称在这里项目中我们直接命名为“Hello World”Company Identifier: 公司标识符一般命名规则为 “com.公司名”Bundle Identifier: 指包标识符用于唯一标识应用程序默认会根据公司标识符和产品名来组合生成Device Family: 指该应用支持的设备类型共三个选项iPhone、iPad、Universal即iPhone、iPad通用Include Unite Tests: 是否包含单元测试代码模板如果勾选Xcode会帮助生成单元测试代码模板编辑选择存储路径点击Next按钮后进入选择文件存储路径界面在这里可以选择要存储项目的目录。编辑项目创建完成点击“Create”按钮项目创建完成弹出项目窗口。编辑试运行项目经过上面的步骤我们已经基于模板创建了一个项目在开始开发前我们可以尝试先试运行一下项目看看效果。点击Xcode左上角的“Run”按钮Xcode即开始对项目进行编译编译完成后会弹出iPhone模拟器在模拟器中运行项目当然我们的项目现在运行起来还只能看到一个空白的界面。编辑