Xcode 4开发第一个iPhone程序 图文实例(上)

移动开发 iOS
在开始之前,我们首先来分析一下项目需求,这是一个非常简单的项目,只要在屏幕上显示一段“Hello World”的文字,当然还有一些附加条件,来看内容。

Xcode 4开发***个iPhone程序“Hello World”是本文要介绍的内容,分为上下篇为友们介绍。

项目要求

写一个iPhone程序,在屏幕正中显示文字“Hello Word”,粗体,字体大小26磅,字体颜色红色,有黑色阴影,阴影光源为左上角,偏移1像素,支持设备旋转。

需求分析

在开始之前,我们首先来分析一下项目需求,这是一个非常简单的项目,只要在屏幕上显示一段“Hello World”的文字,当然还有一些附加条件:

对字体、字体颜色、字体大小有要求,有阴影效果

要求文字显示在屏幕正中

支持设备旋转,并且无论设备如何旋转,文字都还是显示在屏幕正中

根据这些需求,我们将从简单到复杂,逐步来实现,分成2步来实现:

在屏幕上显示文字,设置字体和字体大小,让文字显示在屏幕正中心

支持设备旋转,并且保证旋转后文字还是居中状态

产品设计

iPhone4之前的屏幕是320x480,到iPhone4的时候,支持了高清屏,屏幕分辨率变成了640x960。iPhone支持四个方向的旋转的,横屏和竖屏表现略有差异,因为项目需求要求支持屏幕旋转,所以针对横屏和竖屏,界面表现有所差异,简单画一下原型设计图如下:

Xcode 4开发***个iPhone程序 图文实例 

Xcode 4开发***个iPhone程序 图文实例

系统分析和设计

如果我们还没iOS下的开发经验,那么首先需要去查阅一些相关资料,让我们知道如何来开发一个iphone程序。苹果为iOS的开发者提供了一个非常详细和全面的网站:“iOS Developer Center”,网址:http://developer.apple.com/ios。在iOS Dev Center,有所有iOS SDK的类文档、入门文档、各种开发指南、示例代码库等,开发iOS平台的项目,免不了要经常上来查阅一些相关资料。不过比较遗憾的是,目前iOS Dev Center的文档和资料还是英文为主,中文资料较少,对于英文阅读不好的同学是一个考验。

Xcode 4开发***个iPhone程序 图文实例

现在,我们从技术角度来分析一下如何实现项目需求。同样一个项目,无疑是有很多种技术方案来实现的,所以我们有必要定一个原则,来帮助我们选择合适的方案,这个原则就是简单实用原则:“我们尽可能采用简单并且实用的技术方案,避免使用复杂的技术方案,把时间和精力浪费在一些华而不实的技巧上面”,本着这个原则,我们来开始对项目需求进行技术方案的选择:

在屏幕上显示特定字体和大小的文字

要在屏幕上显示特定字体和大小的文字,我们需要先看看iOS SDK中是否已经提供了简单实用的方式来显示文字,在iOS Dev Center中,有一篇文章“iOS Human Interface Guidelines”,专门讲解了iOS中用户界面相关的知识,从中我们可以系统的了解iOS的界面构成,各种基本界面元素,并且根据其中的说明,可以找到UILabel控件是最适合我们项目需求的控件,当然也有复杂的技术方案,就是采用在界面上自画的方式,根据简单实用原则,我们就使用UILabel这种iOS自带控件就可以了。

Xcode 4开发***个iPhone程序 图文实例

在开始使用UILabel之前,我们需要先来学习了解一下UILabel控件,想要了解UILabel控件的功能,在iOS Dev Center中,找到“UILabel Class Reference”,从中我们可以看到UILabel的介绍和所有属性、方法等详细的说明文档。

Xcode 4开发***个iPhone程序 图文实例

文档相当全面,不过对于我们来说,关键还是要去获取项目相关的资料,从文档中,我们可以逐一找到我们显示文字需要的相关属性:

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”文档。

Xcode 4开发***个iPhone程序 图文实例

从文档中,我们可以找到2个重要属性,用来实现文字显示在屏幕正中:

frame: Label的位置和尺寸属性,类型为CGRect,在本项目需求中,要求显示在屏幕正中,就需要通过Label控件的frame属性的size值,结合主界面的尺寸,计算出x,y坐标值,以保证Label显示在屏幕正中。

autoresizingMask: 这个属性表示控件在其父容器尺寸发生变化时,它是怎么自动调整其尺寸或上下左右各个方向边距的。

支持屏幕旋转

iPhone程序默认不支持屏幕旋转,那么如何让界面支持旋转呢?在iOS Dev Center中,可以找到“View Controller Programming Guide for iOS”,在其中的“Custom View Controllers”一章中专门有一节“Managing a View Controller's Interface Orientation”,说明了如何让你的iOS界面支持设备旋转:

重写对应的View Controller的“shouldAutorotateToInterfaceOrientation:”方法,在方法中申明支持的方向。

配置对应的View Controller中的View的autoresizingMask属性,以适应因为界面旋转导致的布局变化。在本项目中,项目需求中要求设备在旋转也保证文字居中,利用这个属性,可以实现在界面旋转后,窗体宽度和高度发生变化时,UILabel还能继续居中。

Xcode 4开发***个iPhone程序 图文实例

小结:Xcode 4开发***个iPhone程序 图文实例(上)的内容介绍完了,请继续阅读 Xcode 4开发***个iPhone程序 图文实例(下)

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-07-06 18:31:21

Xcode 4 iPhone 模拟器

2009-06-26 16:07:43

MyEclipse开发Hibernate程序

2017-10-13 15:59:24

iPhone机器学习iOS

2011-07-07 15:32:07

2013-10-30 22:10:28

Clouda程序

2023-05-19 08:49:58

SQLAlchemy数据库

2012-05-25 15:20:38

XNA

2022-10-17 10:28:05

Web 组件代码

2013-01-11 14:45:43

iOS开发移动应用iPhone

2011-06-08 10:24:38

Windows Pho 应用程序

2011-06-24 13:38:32

QT 编译 安装

2011-07-18 15:42:20

Xcode iPhone dylib

2011-06-08 10:01:36

Windows Pho 应用程序

2022-11-01 07:23:55

Dockernetcore程序

2024-03-13 13:53:10

C++程序开发

2011-04-02 10:08:21

webOS开发应用程序

2011-07-06 17:53:40

iPhone SDK Xcode

2010-03-25 16:04:56

Python程序执行

2009-03-13 15:23:01

女程序员编程张绮霞

2021-04-07 13:38:27

Django项目视图
点赞
收藏

51CTO技术栈公众号