




免费预览已结束,剩余50页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 I 摘 要 当今社会下移动互联网风靡盛行 对原来传统的互联网行业带来不小 程度上的冲击 所谓移动互联网就是讲移动通信和互联网二者相结合成为 一体 具有用户基数庞大 发展最快 潜力巨大 前景诱人等特点 而在 移动互联网里 苹果公司的产品有着无可替代的领航者地位 在基于苹果 ios 操作系统的开发中 应用和游戏是两个最普遍也是 最重要的模块 而游戏开发则是潜力最大 最具经济市场的模块 因此我 选择此次课题进行开发与研究 希望能够通过基于iOS 操作系统下的 一个游戏深入了解移动互联网 本次毕业设计的题目为 猜国旗 益智游戏技术实现 旨在成功的 设计出一款可以运行在智能手机和平板电脑上的益智游戏 在毕业设计完 成时 可以通过交互 对不同国家的国旗进行比对 以达到对不同国家国 旗的辨识能力 游戏共包含许多关卡 并且存在隐藏关卡 关卡从易到难 极大的勾起游戏者的挑战兴趣 关键词 ios 系统 苹果 移动互联网 游戏 关卡 国旗 Abstract II Abstract Swept under the mobile Internet in today s society prevailed against the original traditional Internet industry has brought no small degree of impact The so called mobile Internet mobile communications and the Internet is speaking a combination of both to become one with a huge user base the fastest growing and has great potential and attractive features In the mobile Internet Apple s products have irreplaceable leader position Apple ios based on the development of the operating system applications and games are the two most common and most important module and the game is the greatest potential for development the most economic markets module so I chose this topic for development and research hope that through the iOS operating system based on a game depth understanding of the mobile Internet The graduation project entitled guess Jack puzzle game technology aimed to design a successful run on smart phones and tablet computer puzzle game in graduation design is complete you can interact with the flags of different countries were compared in order to achieve the ability to recognize the flag of different countries Game contains many levels and there is hidden barriers levels from easy to difficult evoke great interest in the game s challeng Keywords ios system Apple Mobile Internet Game Points National flag 目录 III 目目 录录 摘摘 要要 I I ABSTRACTABSTRACT IIII 目目 录录 IIIIII 第一章第一章 引言引言 1 1 1 11 1 选题背景选题背景 1 1 1 21 2 选题意义选题意义 1 1 1 1 3 3 国国内内外外研研究究现现状状 2 2 1 41 4 论文组织框架结构论文组织框架结构 3 3 第第二二章章 软软件件开开发发环环境境及及所所用用技技术术工工具具 5 5 2 2 1 1 I IO OS S系系统统描描述述 5 5 2 1 12 1 1 isoiso 系统简介系统简介 5 5 2 2 1 1 2 2 I IO OS S系系统统发发展展历历程程 5 5 2 2 1 1 3 3 I IO OS S 架架构构 6 6 2 22 2 构建构建 IOSIOS 开发环境开发环境 7 7 2 2 3 3 XCXCODEODE 9 9 2 3 12 3 1 XcodeXcode 9 9 2 3 22 3 2 InterfaceInterface BuilderBuilder 1111 2 3 32 3 3 InstrumentsInstruments 1212 2 42 4 O OBJECTIVEBJECTIVE C C 开发语言开发语言 1313 第三章第三章 软件开发功能需求软件开发功能需求 1616 3 13 1 游戏应满足的条件游戏应满足的条件 1616 3 23 2 游戏的主要功能描述游戏的主要功能描述 1616 3 33 3 可行性分析可行性分析 1717 第第四四章章 软软件件的的设设计计与与实实现现 1919 4 14 1 IOSIOS开发模式开发模式 1919 4 1 14 1 1 MVCMVC 模式 此模式是本次毕业设计采用模式 模式 此模式是本次毕业设计采用模式 1919 4 1 24 1 2 Target ActionTarget Action 模式模式 2121 目录 IV 4 1 34 1 3 DelegationDelegation 模式模式 2222 4 24 2 IOSIOS常用控件常用控件 2222 4 2 14 2 1 UILabelUILabel 2222 4 2 24 2 2 UIControlUIControl 2323 4 2 34 2 3 UIButtonUIButton 2424 4 2 44 2 4 UITextFieldUITextField 视图视图 2525 4 2 54 2 5 UISlidreUISlidre 视图视图 2727 4 2 64 2 6 UISegmentedControlUISegmentedControl 2828 4 2 74 2 7 UIPageControlUIPageControl 2828 4 2 84 2 8 UIActivitylndicatorViewUIActivitylndicatorView 2929 4 2 94 2 9 UIAlretViewUIAlretView UIActionSheetUIActionSheet 2929 4 34 3 软件详细设计软件详细设计 3030 4 3 14 3 1 创建新项目创建新项目 3030 4 3 24 3 2 创建游戏界面创建游戏界面 3232 4 3 34 3 3 设置根视图设置根视图 3333 4 3 44 3 4 创建主界面控制类创建主界面控制类 MainViewControllerMainViewController 类类 3434 4 3 54 3 5 创建游戏设置类创建游戏设置类 FlipsideViewControllerFlipsideViewController 类类 4343 第五章第五章 软件运行结果软件运行结果 4646 5 15 1 运运行行开开始始界界面面 4646 5 25 2 运运行行结结果果展展示示 4646 第六章第六章 全文总结全文总结 4848 致致 谢谢 4949 参考文献参考文献 5050 第一章 引言 1 第 1 章 引言 1 1 1 1 选选题题背背景景 世界在不断发展 社会依次进步 在信息化加剧的今天 人们对于 手机有了更进一步的开发与应用 随着科技的发展 智能手机已经成为了 今天手机市场的主流产品 现在大部分的人在使用智能手机 智能手机的 发展势不可挡 毫无疑问 手机的智能化是手机的一场革命 互联网应用的发展和3G 网络的成熟 3G 智能手机成为最重要的终端载体 吸引了越来越多消费 者利用智能手机网上冲浪 收发电子邮件 看电影 打游戏 视频对话等 智能手机让人们的生活变得越来越便捷 这就使得智能手机成为了消费者 追捧的对象 苹果手机凭借其独具匠心的做工 操作的高流畅度 精美的外观 彪 悍的性能以及苹果独有的丰厚的文化底蕴 成为众多人士追捧的对象 拥 有一部 iphone 手机是非常令人愉快的事 由此而衍生出来的苹果应用程 序这个市场巨大 而在日常生活中 闲暇之余大多数人选择玩玩游戏消遣 一下 缓解一下紧张的 心情 放松一下自己的神经 因而苹果小游戏具 有广阔的市场空间 而 我平时喜欢用自己的苹果手机玩玩小游戏 感觉 游戏设计的挺神奇 突发奇想如果我的毕业论文设计一个苹果小游戏放在 我的手机上运行 那是一件多么令人兴奋的事情 我主动联系从事这类行 业的同学 在得到其同意帮助我的情况下 我决定我要自己设计 一个 苹果小游戏在我的手机上完美运行 1 1 2 2 选选题题意意义义 本次毕业设计旨在设计一款在苹果手机或者电脑上完美运行的小游戏 猜国旗 通过这次游戏设计加深我对苹果软件的了解 鉴于我自小就 热爱地理方面的知识 从初中到现在有一件未完成的小遗憾 认识世界 各国的国旗 但是由于种种原因至今未完全认识 借此机会 通过设计 猜国旗 这小游戏 去认识世界各国的国旗 完成我儿时的小遗憾 熟 知世界各国的国旗对我来说很重要 不单单完成我儿时的小遗憾 更重要 的是与我目前的工作有莫大的关系 我的客户来自世界各个国家 很多时 第一章 引言 2 候在谈话时就会涉及到一些国家的国旗 因为一个国家的国旗是这个国家 的象征 蕴含丰厚的含义 在6 月 23 日的亚洲第二十四届国际玻璃展 中 很多次谈及国家的国旗 像美国国旗是星条旗 旗面左上角为蓝色星 区 区内共有 9 排 50 颗白色五角星 以一排6 颗 一排 5 颗交错 星 区以外是 13 道红白相间的条纹 50 颗星代表美国 50 个州 13 道条纹 代表最初北美 13 块殖民地 红色象征勇气 白色象征自由 蓝色则象征 忠诚和正义 日本国旗为太阳旗 呈长方形 长与宽之比为3 2 旗 面为白色 正中有一轮红日 白色象征正直和纯洁 红色象征真诚和热忱 日本国 旗寓意 即 日出之国 传说日本是太阳神所创造 天皇是太阳神 的儿子 太阳旗来源于此 中国 国旗中的大五角星代表中国共产党 四 颗小五角星代表工人 农民 小资产阶级和民族资产阶级四个阶级 旗面 为红色 象征革命 星呈黄色 表示中华民族为黄色人种 五颗五角星互 相联缀 疏密相间 象征中国人民大团结 每颗小星各有一个尖角正对大 星中心点 表示人民对党的向心之意 中华人民共和国国旗旗面为红色象 征革命 旗上的五颗五角星及其相互关系象征共产党领导下的革命人民大 团结 星用黄色是为着在红地上显出光明 四颗小五角星各有一角正对着 大星的中心点 表示围绕着一个中心而团结等等 所以国旗是一个国家的 尊严 了解一些国家的国旗有时在人际交往中会给别人留下不一样的印象 在目前的世界在产品质量及价格相差不大的情况下 做生意做的已经不是 产品而是在做的关系 在竞争中比别人掌握得更多 给客户留下的独具一 格的印象生意成功率会大大提高 希望也通过这次毕业设计给广大即将毕 业的同仁们提个建议 不论将来你从事任何工作 都不要忘记学习各方面 的知识来武装自己 机会财富都是留给有准备的人 任何不劳而获守株待 兔的心态都不会有个美好的明天 这不是一个投机取巧的社会 而是一个 竞争残酷不公的社会 1 1 3 3 国国内内外外研研究究现现状状 本次毕业设计所做的是一款益智游戏 益智游戏是指那些通过一定的 逻辑或是数学 物理 化学 甚至是自己设定的原理来完成一定任务的小 游戏 一般会比较有意思 需要适当的思考 适合幼儿以及年轻人游戏 第一章 引言 3 益智游戏通常以游戏的形式锻炼了游戏者的脑 眼 手等 使人们获得 身心健康 增强自身的逻辑分析能力 和思维敏捷性 值得一提的是 优秀 的益智游戏娱乐性也十分强 既好玩又耐玩 随着智能手机 平板电脑的飞速发展 各类以智能手机和平板电脑等终 端为平台的软件开始大规模的被开发出来 游戏软件已经成为软件发展中的 一个不可分割的部分 2010 年 我国的游戏软件市场的市场规模已接近 600 亿元 而以智能手机和平板电脑为平台的游戏软件更是层出不穷 2007 年美国苹果公司推出具备 iOS 操作系统的智能手机 iphone 2010 年推出了同样以 iOS 为操作系统的平板电脑 ipad 而 google 公司也于 2008 年推出了自己的便携设备操作系统Android 这使得 更多的游戏软件有了一个崭新的平台 在为 iphone 以及 ipad 提供软件下载的 iTunes Store 中 游戏软件的总 量已经超过了 4 万个 占到了软件总数中的相当一部分规模 这些软件的 丰富程度极大地丰富了人们日常的生活 而智能手机和平板电脑的交互性更 是无与伦比 它们可以达到传统书籍和音像制品等所无法达到的效果 从用户对于应用在智能手机和平板电脑上的益智类游戏软件的需求来看 开发此类的应用软件的前景十分看好 从国内市场来看 2012 年 苹果中 国市场的应用下载量可能超过美国 而 Android 系统目前已经占据了智能手 机 52 的市场份额 所以为 Android 系统所开发的应用将更加的广泛 发展 也会更加迅速 而游戏类软件作为整个软件行业中的组成部分 其发展势头 也必将上升明显 1 4 论文组织框架结构 引言 引言 介绍本次毕设选题的意义 背景及国内外发展现状 阐述了课题 的目的与意义 根据国内外现状的表述进行整体的设计分析 确定主旨内容 并根据整体的国内外现状进行初步设计和需求分析以及可行性分析 软件开发环境及所用技术工具 软件开发环境及所用技术工具 主要描述 ios 的简介包括其发展历程 架 构以及 ios 开发所需要的环境 在普通电脑上如何构建苹果系统 其后有详 细介绍了一下此次游戏软件开发所用的工具 xcode 以及语言 Objective C 软件功能需求软件功能需求 主要介绍游戏软件的基本功能 通过对系统的可行性 包括经济可行性 需求可行性以及技术可行性 进行分析 从运行到游戏 第一章 引言 4 结果并分析当下益智游戏发展前景及自己本身未来规划 软件的设计与实现 软件的设计与实现 首先介绍一下 ios 开发模式 以及常用的控件的作用 常用属性 部分代码作了描述 之后介绍实现各个模块功能 对于具体的模 块进行介绍 阐述具体的关键代码 让读者理解模块功能与设计思路 软件测试软件测试 在模块建立的基础下 对模块之间的连接以及系统整体进行测试 运用了单 元测试于整体测试方法 发现游戏在运行时出现的问题并进行讨论 解决 对于一些难以 解决的问题及时的寻求老师和同学们的帮助 尽早的解决游戏测试中出现的问题 全文总结全文总结 对本次毕业设计进行一次全方位的总结 第二章 软件开发环境及所用技术工具 5 第第二二章章 软软件件开开发发环环境境及及所所用用技技术术工工具具 2 2 1 1 i io os s系系统统描描述述 2 1 12 1 1 isoiso 系统简介系统简介 iOS 是运行于 iPhone iPod touch 以及 iPad 设备的操作系统 它管理 设备硬件并为手机本地应用程序的实现提供基础技术 根据设备不同 操作 系统具有不同的系统应用程序 例如 Phone Mail 以及 Safari 这些应用 程序可以为用户提供标准系统服务 iPhone SDK 包含开发 安装及运行本 地应用程序所需的工具和接口 本地应用程序使用iOS 系统框架和 Objective C 语言进行构建 并且直接运行于 iOS 设备 它与 web 应用程序 不同 一是它位于所安装的设备上 二是不管是否有网络连接它都能运行 可以说本地应用程序和其他系统应用程序具有相同地位 本地应用程序和用 户数据都可以通过 iTunes 同步到用户计算机 2 2 1 1 2 2 i io os s系系统统发发展展历历程程 iOS 最早于 2007 年 1 月 9 日 苹果在 Macworld 展览会上公布 随后于 同年的 6 月份发布第一版 iOS 操作系统 当初命名为 iPhone runs OS X 起初 由于无人了解 iPhone runs OS X 的存在的潜在价值以及未来的发 展前景 所以没有一家软件公司 一个软件开发者愿意给 iPhone runs OS X 开发软件或提供软件支持 于是 苹果公司时任 CEO 斯蒂夫 乔布斯 说服各大软件公司以及开发者可以先搭建低成本的网络应用程序 WEB APP 来使得它们能像 iPhone 的本地化程序一样来测试 iPhone runs OS X 平台 2007 年 10 月 17 日 苹果公司发布第一个本地化 iPhone 应用程 序开发包 SDK 并且计划在 2 月发送到每个开发者以及开发商手中 2008 年 3 月 6 日 苹果发布了第一个测试版开发包 并且将 iPhone runs OS X 改名为 iPhone OS 2008 年 9 月 苹果公司将 iPod touch 的系统 也换成了 iPhone OS 2010 年 2 月 27 日 苹果公司发布新品 iPad iPad 同样搭载了 iPhone OS 这年 苹果公司重新设计了 iPhone OS 的系统结构和自带程序 2010 年 6 月 苹果公司将 iPhone OS 更名为 iOS 同时还获得了思科 iOS 的名称授权 2010 年第四季度 苹果公司的 iOS 占据了全球智能手机操作系统 26 的市场份额 2011 年 10 第二章 软件开发环境及所用技术工具 6 月 4 日 苹果公司宣布 iOS 平台的应用程序已经突破 50 万个 2012 年 2 月 应用总量达到 552 247 个 其中游戏应用最多 达到 95 324 个 比重为 17 26 书籍类以 60 604 个排在第二 比重为 10 97 娱乐应用排在第三 总量为 56 998 个 比重为 10 32 2 2 1 1 3 3 i iO OS S 架架构构 iOS 架构和 Mac OS 的基础架构相似 站在高级层次来看 iOS 扮演底 层硬件和应用程序的中介 如下图所示 创建的应用程序不能直接访问硬件 而需要和系统接口进行交互 系统接口转而又去和适当的驱动打交道 这样 的抽象可以防止应用程序改变底层硬件 图 2 1 ios 架构 iOS 实现可以看作是多个层的集合 底层为所有应用程序提供基础服务 高层则包含一些复杂巧妙的服务和技术如 图 2 2 图 2 2 ios 的层 第二章 软件开发环境及所用技术工具 7 高层框架为底层构造提供面向对象的抽象 这些抽象可以减少需编写的代 码行数 同时还对诸如 socket 和线程这些复杂功能进行封装 从而让编写 代码变得更加容易 虽说高层框架是对底层构造进行抽象 但是它并没有把 底层技术屏蔽起来 如果高层框架没有为底层框架的某些功能提供接口 开 发者可以直接使用底层框架 ocoa Touch 层 Cocoa Touch 层包含创建 iOS 应用程序所需的关键框 架 上至实现应用程序可视界面 下至与高级系统服务交互 都需要该层技 术提供底层基础 媒体层 媒体层包含图形技术 音频技术和视频技术 这些技术相互结 合就可为移动设备带来最好的多媒体体验 使用 iOS 的高级框架更快速地 创建高级的图形和动画 也可以通过底层框架访问必要的工具 从而以某种 特定的方式完成某种任务 Core Services 层 Core Services 层为所有的应用程序提供基础系统 服务 可能应用程序并不直接使用这些服务 但它们是系统很多部分赖以建 构的基础 Core OS 层 Core OS 层的底层功能是很多其他技术的构建基础 通常 情况下 这些功能不会直接应用于应用程序 而是应用于其他框架 但是 在直接处理安全事务或和某个外设通讯的时候 则必须要应用到该层的框架 2 2 2 2 构构建建 i io os s 开开发发环环境境 由于苹果的电脑比较昂贵 而实验室的机器配置还比较好 因此想利用 现有资源构造一个可以开发 iPhone 程序的环境 构造 iPhone 环境首先对 cpu 有一个要求 cpu 必须是 64 位的 同时 该电脑应该支持 hardware Virtualization 可以使用软件 SecurAble 进 行测试是否电脑的 cpu 为 64 位 是否支持硬件虚拟化 hardware Virtualization 显示为 yes 第二章 软件开发环境及所用技术工具 8 图 2 3 校检 cou 位数 如果电脑满足这些性能 开始安装一个 7 0 以上的 vmware 然后下载 一个苹 果操作系统进行安装 苹果虚拟机的安装如下 1 首先下载雪豹 10 5 7 版本 2 安装虚拟机 7 0 必须为 7 0 及以上 3 设置虚拟内存为 1024M 虚拟硬盘 20G 4 设置网络为 brigde net 5 选操作系统为 freeBSD 64 6 cd dvd 导入镜像 高级里面选择 scsi 1 0 开始安装 按 F8 输入 busratio 20 防止一直重启 回车开始安装 进入 mactonish 的安装界面 当需要选择硬盘镜像时 选择 utility erase 会出 现一个虚拟硬盘 然后点击 continue 点击 customer 选择这些定制 图 2 4 iso 虚拟系统安装 第二章 软件开发环境及所用技术工具 9 接下来按照安装的提示进行安装 就会出现苹果系统的界面 图 2 5 ios 虚拟系统安装完成后界面 安装成功 测试网络 设置共享文件夹 一般会在显示没有设置共享文 件权限 在终端改变共享文件的权限 设置为读写执行的权限 Chmod 777 User usename Public 然后就可以直接在虚拟苹果和 window 下自由拷贝东西 2 2 3 3 X XC Co od de e XCode 是苹果公司的开发工具套件 它可用于管理工程 编辑代码 构建可执行文 件 进行源码级调试 进行源代码仓库管理 进行性能调节等 套件的核心是 Xcode 应 用程序本身 它用于提供基本的源代码开发环境 下面介绍开发 iOS 软件将会使用到的 关键应用程序 2 3 12 3 1 XcodeXcode Xcode 是一个集成开发环境 IDE 从创建及管理 iOS 工程和源文件到将 源代码链编程可执行文件 并在设备运行代码或者在 iPhone 模拟器上调试代 码所需的各种工具 用于对软件产品进行定义的工程管理系统 代码编辑环境 包括为文法显示不同颜色 代码补全以及符号指示等多种功能 高级文档阅读 第二章 软件开发环境及所用技术工具 10 工具 可用于阅读搜索苹果文档 对上下文敏感的检查工具 可用于查看选定 代码符号的信息 高级链编系统 具有依赖检查及链编规则计算功能 GCC 编 译器 此编译器支持对 C C Objective C Objective C 以及 Objective C 2 0 和其他语言进行编译 集成源码级的调试功能 此功能使用 GDB 来实现 分布式计算 此功能可以让您将巨大的工程分布到数台联网的机 器上运行 预测编译 此功能可以加速单个文件的编译周转时间 高级调试功 能 例如停顿和继续运行 而且可以定制数据格式化方式 高级重构工具 这 些工具可以让您在不改变整体行为的前提下对代码进行全局性的修改 工程快 照的支持 工程快照是一种轻量级的本地源代码管理形式 支持启动性能工具 对软件进行分析 支持源代码管理集成支持使用 AppleScript 实现链编过程自 动化 可以生成 DWARF 和 Stabs 调试信息 所有的新工程都会默认生成 DWARF 调试信息 Xcode 工程的中心部分是一个工程窗口 如图所示 此窗口 为应用程序的关键元素提供快速访问 Groups number text NSString stringWithFormat d sliderValue 获取滑动条的值并设置 end 视图控制器上的方法和视图的时间的关联 是通过 Target Action 模式来完成的 MVCMVC 模式优点 模式优点 1 低耦合性 视图层和业务层分离 这样就允许更改视图层代码而不用重新编译模型和 控制器代码 同样 一个应用的业务流程或者业务规则的改变只需要改动 MVC 的模型层即可 因为模型与控制器和视图相分离 所以很容易改变应用程序的 数据层和业务规则 2 高重用性和可适用性 随着技术的不断进步 现在需要用越来越多的方式来访问应用程序 MVC 模式允许你使用各种不同样式的视图来访问同一个服务器端的代码 它包括任 何 WEB HTTP 浏览器或者无线浏览器 wap 比如 用户可以通过电脑也可 通过手机来订购某样产品 虽然订购的方式不一样 但处理订购产品的方式是 一样的 由于模型返回的数据没有进行格式化 所以同样的构件能被不同的界 面使用 例如 很多数据可能用 HTML 来表示 但是也有可能用 WAP 来表示 而 这些表示所需要的命令是改变视图层的实现方式 而控制层和模型层无需做任 何改变 3 较低的生命周期成本 MVC 使开发和维护用户接口的技术含量降低 4 快速的部署 使用 MVC 模式使开发时间得到相当大的缩减 它使程序员 Java 开发人员 集中精力于业务逻辑 界面程序员 HTML 和 JSP 开发人员 集中精力于表现形 式上 5 可维护性 第四章 软件设计与实现 21 分离视图层和业务逻辑层也使得 WEB 应用更易于维护和修改 有利于软件工 程化管理 由于不同的层各司其职 每一层不同的应用具有某些相同的特征 有利于通过工程化 工具化管理程序代码 4 1 24 1 2 Target ActionTarget Action 模式模式 大多数 UI 对象都有事件 Event 你可以关联时间到某一个视图控制器类 上的某一个方法 从而当这个时间触发时 该方法就被调用 在 iphone 开发上 把这个模式叫做设置 Target Action 目标 操作 这是从最终用户的角度来 描述的 比如当用户在 iphone 窗口上的 UI 对象做了某些动作 比如滑动了滑 动条 其实这是一个事件 系统就调用该 UI 对象的 Target 目标 所指定的 控制类 即 TianJinController 和 Action 所指定的操作 类似 JAVA 中的方 法 调用哪个类的那个方法 即 changeNumber 方法 因为 iphone 开发中大量 使用这个模式 我们再整体描述一下 当用户滑动了滑动条 这个滑动条 在 iphone 程序中 统称为控件 英文为 control 有两个设置 目标 TianJinController 和动作 changNumber 也就是说 调用 TianJinController 中的 changeNumber 方法 从而随着滑动数字发生更改 这 个控制器对象其实是一个类 你编写这个类来处理这个动作 另外 所有上述 控件对象的目标 操作同控制类的关联 都可以在 Inderface Builder 上面完成 而无需编写代码 一个控件可能有多个事件 比如 触摸事件就分为 触下 touchDown 拖动 touchDragged 和抬起手指 touchUp 对于文本编辑 框 有开始编辑等事件 所以 在 Target Action 模式下 出了指定 target action 之外 一般还需要指定控件的 event 滑动滑动条后 系统是通过事件来触发控制器类上的方法 那么在控制器 类上的属性值怎么反应到界面上呢 也就是说 你只修改了控制器类上的属性 界面上的文本 Lable 对象的值怎么就获得了控制器上的属性值呢 这是通过 两步来完成的 1 你在控制器类上定义该属性是一个 IBOutlet 输出口 比如 IBOutlet Lable number 这个 IBOutlet 的作用就是说 这个属性的值要 被输出到界面上的某个对象 在内部处理上 其实是告示界面创建器 IB Interface Builder 2 在界面创建器上 你关联这个属性和界面上的文本 Lable 对象 当应用刚刚启动后 控制器类中的 number 指向了界面上的文本对象 当你在程 第四章 软件设计与实现 22 序中更改这个值时 界面上的文本对象的值也被更改 你在界面创建器上设置滑动条的 Target Action 你需要指定这个被调用的方 法为一个 IBAction IB 操作 比如 IBAction changeNumber id sender IBAction 的作用是告诉界面创建器 这是一个可以被时间调用 触发 的方法 也就是说 只有标识为 IBAction 的方法才可以是 Target Action 模式 的 Action IBAction 方法有三种类型 常见的类型是这个方法有一个类型为 id 的 sender 输入参数 该参数就是调用该方法的对象 如滑动条 参数类型 id 类似于 JAVA 上的 Object 类 可以是任何类型 在代码中将该类型转换为实 际类型 另外 IBAction 的方法也可以没有输入参数 或者具有两个参数 sender 和时间 4 1 34 1 3 DelegationDelegation 模式模式 Delegation 委托 模式就是使用回调几只 从开发人员的角度 叫做 回调 符合程序执行流的实际操作 Iphone 经常使用这个模式 UIKit 框架 下包含了窗口 UIApplication 和各个控件类 如 UITableView UITextField 等 其中的好多类都使用 Delegation 模式 比如 UIApplication 的 applicationDidFinishLaunching 方法就是一个回调方法 开发人员可以在这 个方法中设置一些初始值 并动态添加一些视图 4 4 2 2 i io os s常常用用控控件件 4 2 14 2 1 UILabelUILabel 作用 显示文本 常用属性 第四章 软件设计与实现 23 图4 1 UILabel 常用属性 UILabel 示例代码 图4 2 UILabel 示例代码 4 2 24 2 2 UIControlUIControl 作用 具有处理事件处理的控件的父类 事件影响的3种形式 基于触摸 基于值 基于编辑 常用方法 第四章 软件设计与实现 24 图4 3 UIControlUIControl 常用方法常用方法 事件处理 图图4 44 4 UIControlUIControl 事件处理事件处理 4 2 34 2 3 UIButtonUIButton 作用 响应用户的点击事件 常用属性 图4 5 UIButtonUIButton 常用属性常用属性 第四章 软件设计与实现 25 UIButton 状态 图4 6 UIButton 状态 UIButton 示例代码 图4 7 UIButton 示例代码 4 2 44 2 4 UITextFieldUITextField 视图视图 作用 用户输入文字 常用属性 第四章 软件设计与实现 26 图4 8 UITextFieldUITextField 视图视图 常用属性常用属性 常用代理方法 第四章 软件设计与实现 27 图4 9图 UITextFieldUITextField 视图视图 常用代理方法常用代理方法 UITextField 示例代码 图4 10 UITextField 示例代码 4 2 54 2 5 UISlidreUISlidre 视图视图 作用 控制系统声音 或者表示播放进度等 常用属性 第四章 软件设计与实现 28 图4 11 UISlidreUISlidre 视图视图 UISlidre 示例代码 图4 12 UISlidre 示例代码 4 2 64 2 6 UISegmentedControlUISegmentedControl 作用 分段控件 页面切换等 UISegmentedControl 示例代码 图4 12 UISegmentedControlUISegmentedControl 示例代码示例代码 4 2 74 2 7 UIPageControlUIPageControl 作用 通常与 UIScrollView 连用 提示用户当前显示的页数 常用属性和方法 第四章 软件设计与实现 29 图4 13 UIPageControlUIPageControl 常用方法和属性常用方法和属性 4 2 84 2 8 UIActivitylndicatorViewUIActivitylndicatorView 作用 提示用户当前页面正在加载数据 常用属性和方法 图4 14 UIActivitylndicatorViewUIActivitylndicatorView 常用属性常用属性 示例代码 图4 15 UIActivitylndicatorViewUIActivitylndicatorView 示例代码 4 2 94 2 9 UIAlretViewUIAlretView UIActionSheetUIActionSheet 作用 提示用户 帮助用户选择 示例代码 第四章 软件设计与实现 30 图4 16 UIAlretViewUIAlretView UIActionSheetUIActionSheet 示例代码示例代码 4 4 3 3 软软件件详详细细设设计计 4 3 14 3 1 创建新项目创建新项目 首先打开苹果电脑 再打开 Xcode 开发工具 选择左边 create a new Xcode project 新建一个命名为 FlagQuiz 的项目 如图 4 1 图 4 2 所示 图 4 1 第四章 软件设计与实现 31 图 4 2 在创建过程中 选择创建一个单视图 即 singal view Application 如图 4 3 所示 图 4 3 第四章 软件设计与实现 32 4 3 24 3 2 创建游戏界面创建游戏界面 本软件共分为两个界面 即在程序运行的猜国旗游戏的主界面和本游戏的 设置界面 玩家可以再主界面进行猜国旗游戏 而主界面的数据是由设置界面 所提供与限制的 1 1 创建游戏交互界面创建游戏交互界面 当用户点击游戏图标 将进入游戏与用户交互的主界面 该界面主要是由4 个UILable控件和一个UIView 一个UISegmentedControl以及一个UIButton构成 其中4个UILable的作用分别是 最上面的UILable显示本游戏的主题名称 往下 的第二个UILable是用来提示玩家选择展示的国旗属于哪个国家 第三个 UILable在每次玩家选择答案后提示玩家是否选择正确 最后一个UILable则是 提示玩家当前的进度 本游戏共提供10次选择 UIView的作用是用来展示猜测 的国旗图片 而UISegmentedControl则是用来提供选项供玩家选择 UIButton 则是切换主界面到设置界面进行游戏设置 进行相应的增加和降低难度 以上 控件均是通过Xcode自带的xib快速开发的 游戏主界面展示如下图4 4所示 图4 4 图4 5 第四章 软件设计与实现 33 2 2 创建设置游戏界面创建设置游戏界面 若当玩家觉得游戏设置的难度过低 玩家可以根据自己需要做出相应调整 本游戏主要的设置分为两种 一是设置主界面的选项多少 另一个则是设置选 择国旗的所属地区 玩家可以通过点击主界面的设置按钮 即显示 i 的 UIButton按钮 切换到设置界面进行设置 设置界面的详细设置如下 分别由 一个导航控制器UINavigation 一个UISegementControl 八个UILable以及六 个UISwitch构成 其中导航控制器自身设置一个按钮 即 Done 按钮 可是 随时切换到游戏主界面 而UISegementControl是提供给玩家可以选择选项的数 目 UILable则是显示文字提示用户 六个UISwitch分别设置的是加入或关闭各 个地区的地图 生成的设置界面如下图4 5所示 4 3 34 3 3 设置根视图设置根视图 以上两个界面均是通过 Xib 快速开发得到的 属于 MVC 模式中的 View 即 视图部分 接下来则是讲这两个视图以及视图上的控件与数据结合起来 并通 过 MVC 中的 Controller 作为视图与数据之间的桥梁 这样就可以在视图上产生 触发事件后 程序及时的更新数据 数据改变完后又可以及时的改变视图 当 软件开始运行时 首先会为为唯一的 UIWindow 创建一个根视图 这些是在程序 的代理中实现的 即在创建单视图时创建的 FlagQuizAppDelegate m 文件中实 现 具体代码如下 import FlagQuizAppDelegate h import MainViewController h implementation FlagQuizAppDelegate synthesize window synthesize mainViewController void applicationDidFinishLaunching UIApplication application MainViewController aController MainViewController alloc initWithNibName MainView bundle nil self mainViewController aController aController release mainViewController view frame UIScreen mainScreen applicationFrame window addSubview mainViewController view 第四章 软件设计与实现 34 window makeKeyAndVisible void dealloc mainViewController release window release super dealloc end 在委托代理中实现上述代码后 则将 MainViewController 类的对象作为整 个程序的根视图控制器 而 MainViewController 又初始化了一个 MainView 的 对象的视图则作为了根视图 4 3 44 3 4 创建主界面控制类创建主界面控制类 MainViewControllerMainViewController 类类 挡所有控件通过xib快速准备完毕 接下来将创建一个类对象 响应玩家 在游戏时候与界面的交互以及后台数据的处理 这个类包含玩家选择答案函 数 响应玩家操作并显示当前进度的函数 以及切换到设置界面的响应函数 等 我们称它为主界面控制类 主界面控制类包含了数组 图片 字典等很 多属性 其中有的属性是直接与 Xib相关联 之后显示在视图上的 如下图 4 6所示 图中属性前加黑点的则是将要用来显示在视图上的 第四章 软件设计与实现 35 图4 6 进入主界面后 程序将自动运行方法名为viewDidLoad的函数 其具体过程 如下 void viewDidLoad super viewDidLoad call superclass s viewDidLoad method srandom time 0 seed random number generator answerLabel setText nil clear answerLabel 第四章 软件设计与实现 36 numCorrectLabel setText Question 1 of 10 initialize label get a list of all the png files in the app NSMutableArray paths NSBundle mainBundle pathsForResourcesOfType png inDirectory nil mutableCopy loop through each png file for NSString filename in paths separate the file name from the rest of the path filename filename lastPathComponent filenames addObject filename add the display name end for paths release release the paths NSMutableArray self resetQuiz start a new quiz end viewDidLoad 执行完该函数后 紧接着该函数中调用了resetQuiz函数 此函数则是根据 用户设置好的条件获取文件并设置猜测的十个国旗的 其具体代码如下 void resetQuiz numCorrect 0 reset the number of correct answers the user made totalGuesses 0 reset the total number of guesses the user made int i 0 initialize i to 0 add 10 random file names to quizCountries while i 10 int n random filenames count choose a random index get the filename from the end of the path NSString filename filenames objectAtIndex n NSArray components filename componentsSeparatedByString get the region from the beginning of the filename NSString region components objectAtIndex 0 check if the region is enabled NSNumber regionEnabled regions valueForK
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消费金融行业2025用户画像与精准营销策略实施路径研究报告
- 2025年医药流通企业供应链协同创新与成本控制实证分析报告
- 再障的护理课件
- 膀胱结石题库及答案
- 2025年电商平台知识产权保护与电商广告监管策略优化实践报告
- 安全生产知识题库及答案
- 安全生产法知识竞赛试题及答案
- 安全管理实务试题及答案
- 2025年工业互联网平台云计算资源动态分配在智能校园科研管理系统中的应用前景报告
- 数字艺术创作与交易产业链研究报告2025:版权保护与市场拓展
- 手术室环境卫生管理要求
- 2025-2030中国激光喷码机行业市场发展分析及发展趋势与投资前景研究报告
- 《铁路旅客运输组织(活页式)》课件 7.3 旅客伤害应急处置
- 通信光缆割接施工方案
- 小微公司成立章程范本
- 农村生活污水治理专项施工方案
- 2024北京西城区四年级(下)期末英语试题及答案
- 菌菇供货合同协议
- 2025届新高考志愿填报指南课件
- 学校空调安装施工组织方案
- 吊装知识培训课件
评论
0/150
提交评论