您的当前位置:首页正文

IOS 专业实习报告

2022-04-15 来源:九壹网


武汉工程大学

计算机科学与工程学院

专业实习报告

专 业 班 级 学 号 学 生 姓 名 指 导 教 师

实 习 时 间

智能科学与技术

2015~2016学年第1学期 2015.8.31至2015.9.18

实 习 成 绩

武汉工程大学计算机科学与工程学院 制

说明:

1、 实习指导教师由学院校内教师担任,负责组织实习、学生管理、参加实

习答辩、实习成绩评定、给出实习评语等工作。

2、 实习报告由武汉工程大学计算机科学与工程学院提供基本格式(适用于

学院各专业),各教研室和指导教师可根据本专业特点及实习内容做适当的调整,学生须按指导教师下达的实习报告格式认真进行填写。 3、 实习成绩由指导教师根据学生的实习情况给出各项分值及总评成绩。 4、 指导教师评语一栏由实习指导教师(校内教师)就学生在整个实习期间

的表现给出客观、全面的评价,包括实习期间的表现、实习报告的质量、实习答辩的情况等。

5、 学生必须参加实习答辩,凡不参加实习答辩者,实习成绩一律按不及格

处理。实习答辩小组应由2人及以上教师组成,其中校内指导教师必须参加,否则视作无效答辩。

6、 实习报告正文字数应不少于5000字,实习日记字数不少于500字/天。 7、 实习报告正文中实习目的与任务、实习地点、实习内容和要求等项,可

由指导教师统一给出(自主实习除外)。学生自主实习的,可根据实习的情况自行填写以上内容。

8、 自主实习的学生还应提供由实习单位出具的实习鉴定表(复印件),与实

习报告一起装订,作为参加实习答辩和评定成绩的依据。

专业实习答辩记录表

学生姓名: 学号: 班级: 答辩地点: 答辩内容记录(至少3个问题。有问有答。问题简洁。答案准确): 各项分值 15 30 15 实际总得分 得分 总分值 答辩成绩 评分标准 在规定时间内能就实习的内容进行全面完整的阐述,言简意明,重点突出,条理清晰。 在规定时间内能准确、完整、流利地回答教师所提出的问题。 备注 答辩小组成员(签字): 年 月 日

专业实习成绩评定表

学生姓名: 学号: 班级: 类别 总分各项值 分值 10 20 10 评分标准 遵守学校和实习单位的考勤、安全生产等纪律,积极参加实习活动,无旷课、迟到、早退等情况。 积极完成各项任务,表现良好,服从并配合指导教师和实习单位的工作安排。 实习报告格式规范,文字通顺。按照实习大纲要求认真完成规定项目内容,能运用所学专业知识对问题加以分析,并对全过程的实习内容进行系统的总结。 每天记载实习笔记,内容翔实不空泛,无相互抄袭现象。论述充分完整,结构严谨合理。体现了实习过程中的学习情况和项目实践情况,及所思、所获、所感。 按照要求完成实习项目,方案合理,设计工作量饱满,能运用专业知识和技能去发现与解决实际问题。在项目实践过程中展现出了较强的学习能力、动手实践能力、团队协作能力和创新意识。 在规定时间内能就实习的内容进行全面完整的阐述,言简意明,重点突出,条理清晰。 在规定时间内能准确、完整、流利地回答教师所提出的问题。 实际 得分 合计 得分 备注 实习表现 10 项目实践及 实习报告 50 20 20 实习答辩 15 30 15 总评成绩 指导教师评语 指导教师: (签字) 日期: 年 月 日

武汉工程大学计算机科学与工程学院 专业实习报告

一、实习目的与任务

1、理解IOS软件开发的基本技术; 2、理解小组合作的软件开发过程; 3、完成实习安排的项目开发与测试; 4、完成符合规范的实习报告和实习笔记。

二、实习地点

计算机大楼公共基础4号机房。

三、实习内容和要求

设计并完成“基于iOS的星际战机2015”软件:

手机2D飞行射击游戏--《星际战机2014》,在游戏中您可以驾驭自己的战机在游戏世界中与无穷无尽的敌机战斗!游戏操作简单便捷,只需要手拖动自动发子弹。虽然游戏很简单,但是简单的游戏放在微信平台上,直观的好友排名刺激着大家的虚荣感。

游戏的基本设定:共3款大中小飞机,分为高中低三种速度;子弹的射程并非全屏,而大概是屏幕长度的80%;小飞机需要1发炮弹,中飞机需要5发,大飞机需要12发左右;有两种道具,全屏炸弹和双倍炮弹,第一种可以消灭屏幕上的所有敌机并且2秒内没有新的敌机产生(双击屏幕即可),第二种可以让你基本上无敌,消灭所有前方敌机。要清楚飞机的分数,小飞机1000分。 中飞机6000分。大飞机30000分。

四、实习总结及分析

实习时间说长也不长,说短也不短,但至少也有十天的时间,足够我们对ios有一定的认识和了解,学会并会使用简单的oc语言来写代码,尽管写得代码很基础,不够高深,但至少包含了我们实习过程中辛辛苦苦的成果以及对自己的肯定。总的来说,还是十分欣慰的。

实习有十天,每一天基本上都不一样,基于前几天的学习,重新融入新的内容,不仅可以学到新东西,还可以巩固前几天的学习成果,从学习完之后的现在来看,效果还是挺明显的。

像学习所有的程序语言那样,我们第一天当然也是写一个HelloWorld程序,算是一个入门了解。当天下午,我们是要完成一个九九乘法表,是要用到UILabel,要了解它的各种属性以及如何使用,需要在标签上写上每一个对应的乘法公式,还需要设置好每一个标签的大小,不能让它太大,也不能太小,大了,画布上不能显示所有的,小了,又不能看见上面的乘法公式,因此,还需要几次尝试。不仅如此,还要设置好标签的对齐方式,要让最后呈现出来的乘法表美观。在写代码之前,自己的感觉是这实现起来是很容易的,但实际过程还是比较麻烦的。

第一天学的是UILabel,在第二天的时候又学习了UIButton的使用,学习对于按钮的相关使用方法,在界面上创建几个按钮,并设置按钮的位置,以及按钮的大小,同时还用UIButton的方法设置其按钮的背景颜色,标签,还有设置按钮的响应事件,并且为相应的按钮编写处理事件,这让我们对ios中Object-C中的函数编写有了一些初步的认识。在最后还通过imageNamed方法将图片加到按钮上,使按钮看上去更美丽。在此过程中我们实现了资源的导入。先将图片复制到相应工程的目录下。再将图片通过函数添加到按钮

- 1 -

武汉工程大学计算机科学与工程学院 专业实习报告

上。

接下来的一天是在学习流媒体的使用,首先老师讲的是音频播放器,通过系统的mediaplayer对象,实现了一个简单地媒体播放器,实现了音乐播放器的功能。它是通过系统提供的播放器来进行音乐播放的。先在主界面设置一个按钮,当点击按钮时即可跳转,利用mediaplayer的相关属性即可以设置音乐的播放暂停,停止等一系列功能。后来,又讲了一个视频播放器的实现过程,也是通过系统中的播放器来播放视频的,从MPMoviePlayerViewController中获得一个视频播放器,在将要播放的视频导入到工程中,通过NSURL对象将视频文件传给播放器。调用其play方法即可实现播放视频。暂停时可以通过pause方法实现播放器的暂停,当不用时可以释放该对象,以便节省资源。像这样对于流媒体的使用,还是很有趣的,能够带动大家的积极性,能够让所有人都投入进来。

后来,还学习了UIview的切换流程,在多个视图间实现切换操作。具体的实现操作是先设置根视图,再从UIView派生出多个子类,并且为了区分每个视图,通过

setBackcolor设置不同的背景颜色加以区分。另外还实现了一个小游戏,打地鼠。一只地鼠随机出现在三个洞口,当刚好点中时,便会加一分。在这个游戏中用到了随机数产生器arc4random产生4位的随机数。为了获得一定范围的随机数,可以对其进行除以一个整数再取余数。

在接下来的一天学习了UINavigationController的用法,设置了七个视图控制器,在主界面设置几个tabbar,通过点相应的tabbar实现视图的跳转。并能返回到主视图。虽然这个程序功能很简单,但是却让我们对ios的视图层次关系有了初步认识。知道了如何进行视图切换。学完UINavigationController后又紧接着学了简单的绘图,即画直线,画圆画椭圆,在画图形时,先要创建一个画布,再在画布上画图。先创建一个画布对象。在画直线时,先设置起点,可以通过CGContextMoveToPoint(ctx, 100, 100),,再设置直线的终点,CGContextAddLineToPoint(ctx, 200, 300);即可画出直线。还可以通过设置画笔的属性来设置画出线的风格。如画笔的颜色,宽度等等。另外还学习了绘制三角形及利用三根直线画出一个三角形。

在后来的几天,所学的东西都是偏于实践性的内容,学习起来很有成就感。先是编写了一个老虎机游戏,接着是是一个类似预图片管理器的app,最后还弄了一个通讯录。对于老虎机游戏,是先设置三个UIImageView,放置在合适的地方,接着将用到的资源图片导入到工程中。导入后将图片加入到数组中存储起来。为了能使其运行起来,要设置三个定时器。用来让老虎机转起来。在主界面设置一个开始按钮和停止按钮。当点击开始按钮时,便会启动定时器。在定时器处理函数中,通过一个随机的函数,随机选择一副图片,这样便能够显示出转动的效果。对于图片管理器,要学会UIScrollView的用法。要实现一个滚动视图要创建一个分页控制器,来进行控制。例如可以设置分页的真实大小,分页的属性,以及是否隐藏滚动条。同时还可以设置分页的数目。在下午的时候还通过

UIScrollView实现了游戏地图的流览。实现的原理是创建一个分页器,将其尺寸设置的很大,再将图片加到视图上,当滑动时便会滚动,这样就可以浏览到整个地图。最后一天,又学到了UITableView的用法,通过一个简单的应用实现了类似通讯录那样的视图样式。

在这次实习过程中,我们经过十几天的实习,对ios的UI开发有了全面的了解,从基本的helloworld程序到tomcat再到后面的游戏地图。一步步的由浅入深,使我们对UI有了初步的认识。

十天的实习课程,就说明了我们在机房里面写了十天的代码,大大增加了我们的动手能力,尽管实习的过程是由简单到困难,但是仍然避免不了会犯一些错误,其中很多错误就是自己把一些关键的单词给打错了,有一部分,自己通过编译时Xcode里面显示的提示

- 2 -

武汉工程大学计算机科学与工程学院 专业实习报告

信息找到了错误,还有一部分,自己找了半天都没有找出来,最后还是请教同学和老师,在他们的帮助下解决了错误,成功实现了编译,将程序运行了起来。

要想学好ios其实也不是很难,毕竟ios用的是oc语言,是在c语言的基础上改变而来的,很多方面的东西以及其使用方面和c语言相比都是大同小异的。我们在大学三年就是学的c语言和c++,因此,很容易明白和弄清楚老师讲的内容。

五、实习体会

到现在,十天ios的实习课程已经结束了。这是我们这学期开学来第一次实习,而且每学期最多也只有一次实习机会,因此可以说我们每个人都很认真的参加了这一次实习课程。

但是,同学们当我们从实习中满怀喜悦,满载而归时,不要忘了,我们之所以能有这次充实难忘的实习机会,是因为有了我们的学校以及学院的大力支持,千锋实习带队老师的全心指导和无私的关怀。若没有我们学校以及学院各位领导以及相关部门的大力支持,我们是绝对不可能有这次跟所学专业相关,同样也需要一定的c语言基础,密切接近实际工作环境的实习机会;若没有千锋的ios实习老师和蔼可亲的指导,全心全意的无私关怀,我们绝不可能能顺利完成实习任务,也绝不可能满载而归。在这里,请允许我代表我们专业全体实习生向学校以及学院各位领导为我们精心打造的ios实习平台致以最衷心的感谢;向为了我们能真正学到知识而不辞辛苦做了大量工作,而且每天都会激励我们的实习带队老师致以最衷心的感谢!

实习中我们学到了很多书本上学不到的知识,同时也更加深刻地感觉到了动手能力的重要性。可以说实习中我们每一个人都有了自己的收获,收获了心中的那份经历,那份感受,那份回忆!

实习过程是繁琐的,但同学们都表现得很积极,不怕课程难,相互帮助一起分析。这对于我们来说是一种难得的历练,我们此次是针对ios的课程实习,需要懂得一些最基本和最简单的东西,不仅如此,到最后还要能够搞出一些小的游戏来,例如汤姆猫和打地鼠等。很多同学甚至吃了饭就马上回到机房,自己动手玩玩。实习的指导老师也非常认真负责,耐心讲解,细心指导,一点一点解答同学们的疑惑,直到同学们理解了为止。在实训中,分析,讨论,演算,机房里充满了浓浓的学习气氛.

如果说最好的大学是社会,那实践便是最好的老师了。通过本次的实习机会,我们对oc有了更深的了解与体会。我们明白理论与实践相结合的必要性和重要性。它激发了我们下一阶段更加努力刻苦学习的积极性。有一句关于实践的谚语是这样说的:\"我听到的会忘掉,我看到的能记住,我做过的才真正明白实践经验对于软件开发者来说更是必不可少的。\"微软公司希望应聘程序员的大学毕业生最好有十万行的编程经验。理由很简单:实践性的技术要在实践中提高。计算机归根结底是一门实践的学问,不动手是永远也学不会的。因此,最重要的不是在笔试中考高分,而是实践能力。吃苦是为了做金字塔尖上的人。

\"纸上得来终觉浅,绝知此事要躬行!\"在短暂的实习过程中,让我深深的感觉到自己在实际运用中的专业知识的匮乏,刚开始的一段时间里,对一些工作感到无从下手,茫然不知所措,这让我感到非常的难过.在学校总以为自己学的不错,一旦接触到实际,才发现自己知道的是多么少,这时才真正领悟到\"书到用时方恨少\"的含义.

在经过了复杂而忙乱的设计编程后,我们按时完成了实习单位交给的任务。虽然结果并没有达到我们最初设想的效果,但在排除了时间短,所涉及的知识范围较广等客观原因后,我们看到的的是自身上的不足,我们所掌握的远不能满足这次任务的要求,我们还有很多东西需要在今后学习中生活中去理解去掌握.这次的任务使我们深刻体会到,学习与实践这之间的距离,只有不断的吸取理论知识,在实践中进行磨炼,才能适应现今科技超速发

- 3 -

武汉工程大学计算机科学与工程学院 专业实习报告

展的计算机时代。

\"独学而无友,则孤陋而寡闻\"。在短暂的实训过程中,让我深深的感受到了团队协作和人际沟通的重要性。处在计算机技术迅速发展,internet广泛普及的的时代,只有学会团队合作,深刻领悟团队精神,才能使自己在激烈的竞争中,处于不败的地位,才能适应这信息爆炸的社会,毕竟一个人无论是从时间还是从精力来讲,所能做的只是很少很少事情;更重要的是大学生还应当充分利用身边宝贵的人才资源,从各种渠道吸收知识和学习方法。如果遇到好的老师,你可以主动向他们请教,或者请他们推荐一些课外的参考读物。除了资深的教授以外,大学中的青年教师,博士生,硕士生乃至自己的同班同学都是最好的知识来源和学习伙伴。每个人对问题的理解和认识都不尽相同,只有互帮互学,大家才能共同进步。

人们常说:\"立足本行如下棋,输赢系于每个棋子\"。大学,大代表广博,学代表学识。大学出去的人一定要有广博的学识才能算得上是真正的大学毕业生。从大学的第一天开始,我们就必须从被动转向主动,成为自己未来的主人,积极地管理自己的学业和将来的事业,做好人生和职业生涯规划。作为大学生,最重要的还是学习,学生第一要事是学习,学习好了才能做其他的事情。毕竟现在是知识,信息第一的时代,有了知识你才能改变,得到自己想要的,实现自己的梦想.

总结一下在此次ios实习过程中的收获主要有四个方面:一是通过直接参与项目开发流程,学到了实践知识,同时进一步加深了对理论知识的理解,使理论与实践知识都有所提高,圆满地完成了此次实训的任务。二是提高了实际动手操作的能力,为就业和将来的工作取得了一些宝贵的实践经验。三是在实训过程中成立一个小团队,彼此之间互相沟通,互相帮助,为了我们的目标而努力,让我看到了大家对于学习的热情,还有每个人的学习能力。四是为毕业论文积累了素材和资料.在这里,我们要再次感谢校领导以及学院领导给我们提供的一个这么好的学习环境以及实训带队老师对我们的精心的指导与深深的鼓励以及无私的关怀。

我想这次实训结束的同时,对自己以后的学习便是一个新的开始,争取精益求精,更上一层楼。\"路漫漫其修远兮,吾将上下而求索\"我相信自己在以后的学习中会不断的完善,不求最好只求更好!\"天行健,君子以自强不息\"。生活因奋斗而精彩。人生之路,使自己用双脚对全部生命历程的艰难丈量.每个人身后深深浅浅的脚印里,都蕴藏着许许多多个故事,蕴含着许许多多的快乐与艰辛.在这个弱肉强食的社会里,只有强者才有出路,才能在高手如云的环境中脱颖而出,占有一席之地。心如平原驰马,易放难收,趁着缰绳还在手,勒马回头,为时不晚。奋斗的过程很艰辛,也许一年两年都不会有什么进展,但只要保持一颗奋斗的心,总有\"守得云开见月明\"的时候。正如\"临渊羡鱼,不如退而结网\"。我们要永不退缩,永不言败!

虽然只有短短十天的实习时间,但收获到的东西还是挺多的,不是说学到了许多很高深的东西,但至少学了一些基础的东西,足够吸引我们的眼球,让我们对ios产生兴趣。总的来说,我们还是获益匪浅的。

- 4 -

武汉工程大学计算机科学与工程学院 专业实习笔记

实习笔记

时间:2015年9月1日

地点:计算机大楼公共基础4号机房 主要内容:

今天是第一天开始实习课程,今天所讲的都是十分基础的部分,很容易看懂并且使用的部分,今天所写的代码都是以后必不可少的,必须要用的。在上午的课程中,老师带领我们新建了一个HelloWorld,里面的代码也十分简单,主要用到的是UILabel。用UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 50, 320, 100)]来定义一个标签,标签名是label,并且标签最左边距离画布左边为0,标签最上边到画布最上方的距离为50,标签的宽度和高度分别是320和100。在定义了一个标签之后,接着又介绍了标签的几种属性,包括font字体大小属性、text显示文字属性、textColor设置字体颜色属性、backgroundColor背景颜色属性、shadowColor设置虚影和shadowOffset设置虚影偏移量属性。不仅如此,还介绍了textAlignment字体对齐方式属性,此属性有三种对齐方式,NSTextAlignmentCenter 居中对齐的方式、NSTextAlignmentRight 靠右对齐的方式和NSTextAlignmentLeft 靠左对齐的方式,默认的是靠左对齐方式。

在下午的课程中,要做的是用标签来构造出一个九九乘法表。在构造过程中需要用到上午介绍的标签属性,设置好每一个标签的大小以及他的偏移量。当然要用到for函数来进行循环设置标签。

时间:2015年9月2日

地点:计算机大楼公共基础4号机房 主要内容:

今天是第二天实习,主要介绍的UIButton控件。要用到按钮,必须先用UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]定义一个按钮,再利用按钮控件的一些属性来对按钮进行设置和调整。利用frame属性来设置好按钮的大小,而且还需要为按钮选择相应的类型,类型有三种,一种是详细按钮,是用UIButtonTypeDetailDisclosure来表示的;还有一种是添加按钮,是用UIButtonTypeContactAdd来对其进行表示的;最后一种是自定义按钮,它所用的表示是UIButtonTypeCustom。当然,按钮并不会孤零零地摆在那里,不然的话,我们就不能区分每一个按钮是干什么用的,所以我们需要对按钮添加一些东西,例如在按钮上添加文字说明,而且也可以改变按钮的形状,按钮默认的形状是矩形的,我们可以利用layer.masksToBounds 和layer.cornerRadius来对矩形进行切圆角,当layer.cornerRadius是90度的时候,矩形的4个角就会变成圆角。不仅如此,我们还可以对添加的按钮做出一些小改变,如当我们用鼠标选中的时候,按钮会做出一些改变,改变按钮上的文字或改变按钮的颜色,这时,我们可以用UIControlStateSelected来进行设置。

对于按钮,当然不能像标签那样,他还需要用户去点击并且在点击之后会有相应的操作。因此,需要设置点击事件,对按钮进行点击之后让其完成一些必要的操作。对于点击事件,还需要去写一个函数来完成对点击按钮的必要响应。

时间:2015年9月3日

地点:计算机大楼公共基础4号机房 主要内容:

今天是实习第三天,我们继续学习了一下UIView,并利用前天学的UIView和

- i -

武汉工程大学计算机科学与工程学院 专业实习笔记

UIButton的用法,创建了一个简单的飞鸟动画,其中用到了定时器,即NSTimer,实现定时器,使其每过一定时间便移动一下飞鸟的位置,其实移动的是飞鸟的UIView的位置,并且通过UIView的动画属性为其设置飞鸟扇动翅膀的动画。 为了实现飞鸟的动画,首先必须用NSMutableArray为其创建一个数组,将相应的图片读入到数组中。存储起来,便于后面的动画实现。在读入图片时可以采用for循环读入图片,并赋给UIImageView对象,再将其加入到数组中。在实现动画的过程中为了能准确获取UIImageView对象,必须给其设置一个tag值用以在定时器中获得该对象。而在定时器中通过viewWithTag既可以获得该UIImageView。移动飞鸟。可以通过UIImageView的frame.origin设置其位置,也就是不断改变其水平坐标,即可实现水平移动,类似的如果修改纵坐标,则会垂直移动。因此在定时器中不断修改坐标即可实现飞鸟的移动。 但在运行的时候发现当飞鸟移动到最左边时,便不见了。为了让其能再次从右边出来,在改变坐标时但判断移动到最左边时,便将其坐标修改为最右边的坐标,结果飞鸟便可以不断地在水平方向循环移动,再也不会消失。

时间:2015年9月4日

地点:计算机大楼公共基础4号机房 主要内容:

今天是实习第四天,在今天的实习过程中,我们通过ViewController实现了一个简易的视频播放器,先是创建一个主View,在主视图中创建一个按钮,用于启动播放器,播放视频。当点击按钮时,会触发相应的按钮点击事件,实现视图的跳转,即从主视图跳到第二个视图,在第二个视图中调用系统的视频播放器对象,创建一个视频播放器对象,通过该对象读入相应的视频文件并实现视频的播放。 其次我们还用UIView创建动画,并进行各种属性的设置,包括边框,中心点,颜色等属性,并通过定时器设置动画,在定时器事件中通过随机数函数产生随机数,实现随机动画的切换。产生随机数的函数是arc4random,只要将其处于一个整数然后取余数,即可以实现一定范围的随机数的生成,例如要想产生1-9内的随机数,即将arc4random%10,就得到随机数。 当用自己写的播放器播放视频时,发现自己的播放器在播放完视频时便会自动退出,而无法进行循环播放,并且在播放过程中,无法进行暂停。后来经过改进,在第二个视图中加入一个按钮,实现暂停。但点击按钮时会调用meddiaplayer对象的pause方法暂停播放。而至于实现循环播放则可以设置mediaplayer的属性,即可实现视频的循环的播放。

时间:2015年9月5日

地点:计算机大楼公共基础4号机房 主要内容:

今天是实习的第五天,我们在实习的过程中完成了打地鼠和国际象棋的游戏代码。和前几天一样,也是分为上午和下午两部分,上午做一个,下午做一个。在上午的实习课程中,我们需要对打地鼠游戏进行代码编程,最后让其运行起来,让它能够完成游戏部分必须的操作。先是要设计一个在玩游戏之前的界面,在界面中显示一个带有“开始游戏”四个字的按钮,并对按钮的点击能够实现跳转操作,跳转到真正的游戏界面,设置跳转方式要用到的是modalTransitionStyle。在跳转到游戏界面时,游戏便开始了。游戏开始,我们需要进行时间限制,还要记录打地鼠完成的分数,而且在游戏过程中还要有游戏声音。因此,我们需要用到AVAudioPlayer来定义一个音频播放器,用UILabel来定义一个显示分数的文本和用来显示时间的文本。既然是打地鼠,当然还要创建地鼠,从9个洞中只能出

- ii -

武汉工程大学计算机科学与工程学院 专业实习笔记

现一个地鼠,对打到地鼠时,能够切换到另一张地鼠被打晕的图片,到时间结束时,游戏也马上结束。

在下午,我们是在完成国际象棋的游戏。首先,要用到UIView来完成棋盘的制作,接着是要制作象棋,对于象棋,象棋是可以移动的棋子,要跟着用户的鼠标做出响应,故将象棋用按钮来是实现,然后在每一个按钮上面添加相应的文字。并且象棋是两个人玩,所以还要将象棋设置两种不同的颜色,最后是对游戏规则进行设置,按照实际国际象棋的玩法来制定游戏规则。

时间:2015年9月6日

地点:计算机大楼公共基础4号机房 主要内容:

在实习第六天,上课讲的东西相对来说,还是比较少的,主要讲的是界面切换的实现过程。本身执行编写的代码时会有一个界面,但是只有一个,不能实现界面的切换过程,所以还需要一两个界面。如同刚开始打开工程一样,重新再建立两个,但他们和第一个必须是属于一个类的。在第一个界面里面先设置一个按钮,并利用他的属性对他进行设置,给它加上文字,或者把它从是矩形的变成圆形的。最重要的是,要让按钮能够处理点击事件,进而实现页面的切换。先对按钮设置点击事件,然后再添加相应的函数来对点击事件做出反应,在此过程中,还可以设置跳转方式,让页面以何种方式来实现切换。

在跳转到下一个界面后,跳转之后的界面也同时需要设置一个按钮,此按钮也应该要能够处理点击事件,不然的话,从第一个界面切换到这一个界面之后,就只能停留在这一个界面,不能干其他事,也不能跳转到其他界面,同时也不能跳转回去。对于有三个界面,我们可以添加两个按钮,从而实现从这一个界面能够跳转到其他界面。不仅如此,还需要用setTitle来对在每一个界面的按钮添加标题,说明点击这个按钮之后,是从这一个界面跳转到哪一个界面。

时间:2015年9月7日

地点:计算机大楼公共基础4号机房 主要内容:

今天是实习第七天,实习的主要内容是视图控制器,即如何在多个视图中进行跳转。首先要创建多个视图控制器ViewController,在创建时从ViewController继承实现多个自定义的视图类,并分别设置不同的tag值,便于切换视图时能找到相应的视图。同时还需创建UINavigationController,并将视图控制器与其关联起来。例如创建视图控制器对象view,将其与UINavigationController便可以通过UINavigationController对象操纵view的属性,比如设置标题等。为了能切换视图需要用到UITabBarController对象,先将创建的UINavigationController添加到数组arr中,再将arr赋值给UITabBarController对象的viewControllers属性。并设置其代理为self即自身。 接着设置根视图,self.window.rootViewController = tab,即可设置根视图。当切换时通过不同的ViewController的tag值实现对应视图控制器的选择,tab.selectedViewController = nav;即可设置nav为当前视图在点击主界面上的tabbar时,会发出相应的跳转事件,并把要选择的tag值发给处理函数。而处理函数根据收到的tag值在UITabBarController中选择对应的视图控制器。跳转到对应的视图。按返回键即可返回到上一个视图。 在今天的实习中通过7个视图的跳转,让我对ios的视图关系有了较深的了解,对视图的切换也有所了解。但在实际过程中也遇到了问题,例如无法在多个视图间来回切换,当切换到一个视图时只

- iii -

武汉工程大学计算机科学与工程学院 专业实习笔记

能返回到根视图,不能直接切换到另一个子视图。

时间:2015年9月8日

地点:计算机大楼公共基础4号机房 主要内容:

今天是实习过程的第八天,我们今天主要学习的是完成类似于老虎机的水果游戏。主要是要学会使用UIPickerView来进行选择。既然说是类似于老虎机的游戏,当然需要几列,一列是不可能完成的,当每一列显示的结果都是一样的时候,就说明是中奖的。在经过老师详细的讲解之后,我们就开始动手使用Picker来编写程序,运行后能实现老虎机游戏。首先我们要拖拽两个Label进来,一个用来用作提示,另一个用来显示得分。既然是游戏就要有游戏的界面,我们要用UIButton来定义一个老虎机的游戏界面,包括颜色背景等一系列的东西。老虎机的中奖判断是选中的每一列中的每一行都是一样的图案,所以我们要把图案放入到代码中,让这些图案显示在每一列的每一行中,然后让这些行和列的宽度和高度都相同,当我们按下启动键时,游戏就开始运行,各列将开始转动起来,当然每一列的转动速度应该设置成不一样的,否则就会出现很容易中奖,在实际的游戏中,游戏设计者也是这样设计的。在我们按下停止键时,每一列的速度开始发慢,渐渐停下来,如果选中的每一列的行中的图案都是相同的,则显示中奖,反之则没有中奖。这样老虎机的游戏设计过程就这样完成了。

时间:2015年9月9日

地点:计算机大楼公共基础4号机房 主要内容:

今天是ios实习的第九天,经过之前八天的学习课程,我们对ios有了一定的了解,能够使用Xcode编写一些简单的代码,实现小些小功能,。今天潘老师讲解的内容是实现大型图片的滑动观察和图片组的点击滑动浏览功能视图滚动,老师用了平常我们手游里常见的图片为例子,引起我们很大兴趣。我们先创建视图,加载图片,通过sv.contentSize = image.size设置图片真实大小,设置背景灯基本步骤,然后对图片进行一些操作,为了更好地观看图片,操作过程中通过sv.showsHorizontalScrollIndicator来设置水平指示条,通过sv.showsVerticalScrollIndicator 来设置垂直指示条,通过 sv.bounces 设置反弹效果,我们可以相上下左右拖动图片,拖动的同时可以看到指示条随之滚动,图片动起来之后先加速,拖动一段时间后放开鼠标,图片开始减速,直至停止。如果图片运动到边界时仍然没有减速到零,那图片就会在边界反弹,看起来很有意思。为了便于观察,了解情况,我们还可以加入一些代码,是图片状态发生变化,即开始拖动,加速,停止加速,停止拖动,减速,停止减速时有相关的文字输出。我们还可以对图像进行缩放处理。

今天老师的讲课简单生动,实用有趣,虽然时间很短,但确实让我们认识到ios编程的乐趣,和游戏挂上了钩,非常感谢潘老师的讲课。

时间:2015年9月10日

地点:计算机大楼公共基础4号机房 主要内容:

今天是第十天实习,也是最后一天,十天的ios培训马上要结束了。今天学习了新内容UITableView,在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用

- iv -

武汉工程大学计算机科学与工程学院 专业实习笔记

的软件中到处都可以看到它的影子,类似于微信、QQ、新浪微博等软件基本上随处都是UITableView。当然它的广泛使用自然离不开它强大的功能。UITableView有两种风格:UITableViewStylePlain和UITableViewStyleGrouped。这两者操作起来其实并没有本质区别,只是后者按分组样式显示前者按照普通样式显示而已。老师主要讲解了UITableView的代理、数据源、UITableViewCell、常用操作、性能优化、MVC模式和UITableViewController。同时还讲解了cell复用,cell复用就是先从复用池中找到相应标签并且闲置的cell,如果有,我们就直接拿来用,如果没有,我们就重新初始化新的cell,并打上标签,等到闲置的时候就直接放到复用池中,以待下次使用,cell复用的优点是节省大量内存,缺点是内容会带有以前的内容。

结合以上所学的UITableView和UITableViewCell我们写了一个简单的小程序,这个程序的功能是在界面显示英雄联盟的英雄头像和他们的介绍。程序中英雄头像用png格式的图片,介绍数据保存在heros.plist文件中,数据有三部分icon为头像图片名称、intro为英雄介绍、name为英雄名称。在此程序设计中还用到了NSArray(数组),并且我了解到Objective-C的数组比C++,Java的数组强大在于,NSArray保存的对象可以是不同的对象。

- v -

因篇幅问题不能全部显示,请点此查看更多更全内容