毕业设计(论文)-基于IOS的校园信息交流平台的设计与开发.docx_第1页
毕业设计(论文)-基于IOS的校园信息交流平台的设计与开发.docx_第2页
毕业设计(论文)-基于IOS的校园信息交流平台的设计与开发.docx_第3页
毕业设计(论文)-基于IOS的校园信息交流平台的设计与开发.docx_第4页
毕业设计(论文)-基于IOS的校园信息交流平台的设计与开发.docx_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全套设计加扣 3012250582 摘要当前电子产品出现在我们生活的几乎任何位置,可以说现在人们已经无法适应没有电子产品的生活,手机是众多电子产品中使用最频繁的。顺应手机在生活中的重要性,基于手机的软件的需求也在慢慢增长,2015年创业潮的推动下更多的手机软件诞生,尤其是社区Online To Offline(在线离线/线上到线下,下文简称O2O)和互联网金融方向创业。 在2015年互联网创业的方向大多是O2O和互联网金融,目前来说O2O也是走到了末端,而基于IOS的校园信息交流平台的设计与开发(以下简称eSchool)就是一款基于O2O微设计理念的校园应用app,但是它却有一个不会被淘汰甚至超前的功能。eSchool通过其会员卡包的设计理念彻底解放了我们钱包中会员卡过多的烦恼,另外增加了对商店的定位导航功能,能够更加方便寻找商店,以及告诉朋友自己所在商店的位置。做为一款大学校园软件当然少不了论坛的功能,论坛是一个集交友,探讨学习等于一体的功能模块。在校园新闻模块展示校园各学院的最新新闻动态,旅游模块介绍几个焦作市著名景点,并设置几家旅行社联系方式。在本应用的平台上不仅方便并丰富了学生的校园生活,给学生的消费带来优惠与方便也为周边的商店带来一定的客源,服务于双方才能保证应用的长久持续发展。关键词:校园生活,会员卡,O2O,河南理工大学AbstractThe current electronic products in our lives almost any location, It can be said now that people have been unable to adapt to life without electronic products, mobile phone is one of many electronic products most frequently used. The importance of mobile phones in the life of the adaptation, based on the phones software demand is slowly growing start-ups in 2015 under the impetus of mobile phone software more birth, particularly community Online To Offline (online of offline / online to offline , hereinafter referred to as O2O) and financial direction of the Internet business.Internet start-ups in 2015, mostly in the direction of financial and Internet O2O, O2O now, the end is come, and the IOS-based campus information exchange platform design and development (hereinafter referred to as eSchool) is based on a design concept of micro O2O campus application app, but it will not be eliminated even have an advanced function. eSchool through its membership card package design complete liberation of our membership card wallet too much trouble, in addition to increasing the stores positioning and navigation functions can be more convenient to find the store, and tell a friend where the location of the store itself. As a university campus course, the software features of the Forum, the Forum is a collection of friends, explore learning is one of the functional modules. Latest News show each college campus in the campus news module, the module introduces several tourist attractions in Jiaozuo City, the famous, and several travel agencies set up contacts.On the platform of the present application is not only convenient and enrich students campus life, students bring consumer benefits and convenience it also brings a certain source for the surrounding shops and services in order to ensure the application of both long-term sustainable development.Keywords: Campus life, membership cards, O2O ,Henan Polytechnic University目 录1 选题背景21.1 前言21.2 选题目的及意义32 开发工具及相关技术介绍42.1 Xcode开发平台42.1.1 Xcode mvvm开发模式介绍42.1.2 代理解释42.1.3 iOS开发帐号介绍42.2 MySql数据库52.3 友盟微社区52.4 高德地图SDK52.5 环境配置53 需求分析及可行性研究73.1 需求分析73.1.1 用户分类及权限73.1.2 用户需求73.1.3 安全性73.2 可行性研究83.2.1 技术可行性83.2.2 经济可行性84 系统概要设计94.1 系统模块设计94.1.1 系统总体架构设计94.1.2 分类功能架构设计104.1.3 会员卡详情设计114.1.4 导航功能设计124.1.5 拨打电话功能设计134.2 系统数据表设计134.2.1 用户表的设计134.2.2 学校表的设计144.2.3 会员卡表的设计154.2.4 分类表的设计154.2.5 卡详情表的设计164.2.6 分店表的设计175 系统实现185.1 登录注册模块185.1.1 注册185.1.2 登录185.2 首页模块195.2.1 轮播视图195.2.2 分类功能215.2.3 会员卡功能275.3 扫描模块335.4 个人中心模块335.4.1 个人信息335.4.2 退出登录346 系统测试366.1 系统的安装366.2 测试的目的366.3 测试的方法366.4 测试的步骤366.5 存在的问题及解决办法377 总结39致 谢40参考文献41IV1 选题背景1.1 前言iOS是基于Unix的操作系统,相对于安卓系统来说更加安全稳定,这也正是唯一搭载iOS系统的iPhone的卖点之一。苹果公司最早是在2007年1月9日在Macworld上公布iOS,起初是设计给iPhone使用,后来在iPad、Apple TV、iPod、Apple Watch上也陆续开始使用。在2015年创业潮的推动下,更多的手机app需求来传播创业理念,也有很多的创业理念是基于手机而联想的。iOS软件是针对苹果手机开发的应用软件,当今智能机主流iOS和android操作系统,安卓系统开源的开发环境让国人更加喜欢并且去改造独具特色的安卓版本系统。但是iOS的Objective_C却是封闭的,新的iOS开发语言swift是开源的,但是底层依然是封闭的,即便如此还是有很多人会去投入到iOS软件的开发,因为中国的iPhone,iPad,iPod用户几乎占有一半数量。日常生活中购物或者消费时有时会觉得某个商店自己比较喜欢,或者说商店推出的会员制比较优惠,那么就会选择加入商店的会员,一些是需要一次性充值一些金额,一些是需要购买成为会员。成为会员后商店会以一张卡作为会员的编制,以后以会员的身份消费时需要出示会员卡,会员卡成为了会员的唯一标示。然而有时消费者会忘记带会员卡,或者会员卡会丢失造成一定的麻烦。如果将所有店的会员卡统一起来用一个超级会员卡来代替,那么不同店的优惠不同,也会造成一定的分歧,但是与超级会员卡性质相同的手机卡包,即将所有的会员卡电子化,使用某一软件能够呈现出所有的会员卡那将会更加省事,eSchool就是在这一理念下设计出来的。社区O2O主要是建立在社区联系商户与消费者的交易平台,会员卡的设计不仅解决了用户对于卡保管与携带的不便,而且还方便了用户使用卡的流程,在给用户带来优惠的同时也微商家带来了一定的客源。电子会员卡能够支持随时查询账户余额优惠券等,也能及时收到商家的促销信息,以及其他方面的消息,如果商户准备将店铺转让或者关闭app运营商能够及时查到商户动态,避免用户的财产损失。在会员卡的发展史中曾经出现过不同的管理方式,曾经店连店也是风靡一时,将商家联系在一起,统一会员卡,集众多卡于一体,表面上是将消费者的会员卡减轻了负担,但是由于不同商家的会员优惠制度不一样,而且统一会员卡虽然能够带来客流量的增加但是却不能保障固定客源,因此商家在众多的客源中选择部分给予优惠使成为自己的固定会员后推行自己的会员卡,则慢慢会退出店连店的编制,从而导致店连店只是给商户带来客源,但是却不能够长久。在学校内需要时刻观察着学院的动态,在学院发布新闻时能够及时发现并察看才能够避免学生因为得知信息较晚而导致耽误学院活动或者其他事项,常关注其他学院的事项也能够在自己课余时间多了解一下本专业以外的知识活动,体验其它学院的风采。在旅游模块设计上不仅能够为学生介绍焦作著名景点还能够为学生提供旅行社的选择。1.2 选题目的及意义目的:选择该题目主要有两个目的:一方面此题目下的校园软件具有实际的应用,社会中app针对的是有高消费能力的社会成员,但是大多创业者却忽略了高校这一规模庞大的用户群体,推行校园软件不仅能够获得极多的用户,也能够得到周边商家的众多支持。在各大高校推行校园软件来方便学生的校园生活,给学生带来优惠的同时也能够为周边商户带来客源;第二方面是通过一项完整的项目能够检验自己对知识掌握的水平,能够将大学期间学习的相关知识综合应用,重新将之前学过的知识复习一遍。在撰写过程中由于需要综合的应用,所以能够发现各方面的不足之处,通过复习以及学习新的知识能够让自己对技术掌握的更加牢固; 意义:大学生活是一个相对来说比较轻松的时段,大学生在社会与校园的边界徘徊。通过一款校园软件能够让大学生利用校园的闲暇时间娱乐,找兼职,交友等,这将会是一个非常有潜力的方向,而且现在已经有不少企业在大学推行校园软件了。在app中准备了论坛功能,这个支持学生对网上热点的讨论,在增加学生认知的同时也能丰富校园生活。电子会员卡的设计能够为学生和周边的商户带来实际的价值,也能够促进消费,保护消费者的利益,为用户及时推送店家动态,让用户能够抓住时机,也能够避免商家突然消失导致用户利益受损。如果在校园内推行则会发现app的不足之处,但是通过用户的反馈则能够很快的将app的功能完善,成为一个在校园生活中离不开的app。2 开发工具及相关技术介绍2.1 Xcode开发平台Xcode 是Apple公司开发在Mac OS X操作系统上运行的集成开发工具(IDE)。OS X与iOS应用程序在Xcode上开发最快捷有效。Xcode 的用户界面设计不仅可以直观的一边开发一边调试,编码、调试、测试都是在同一个窗口完成。在新建项目时可以选择iOS、tvOS、watchOS、OS X等系统,其中iOS中又可以选择iPad应用或iPhone应用,也可以创建iPhone和iPad通用的应用。在Xcode中主要使用Objective_C语言与swift语言,也可以在使用这两种语言时嵌入C、 C+、Java和 AppleScript语言,相对于其他编译工具Xcode具有较为高效快捷的编译能力。2.1.1 Xcode mvvm开发模式介绍MVVM是Model-View-ViewModel的简写。微软的WPF为我们带来了全新的技术体验,这也导致软件UI层更细节化和可定制化。同时,在技术层面,它也带来了诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的方式发展演变来的一种新型框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。2.1.2 代理解释Delegation的基本特征是一个controller定义了一个协议。该协议描述了一个delegate对象为了能够响应一个controller的事件而必须做的事情。协议就是delegator说,“如果你想作为我的delegate,那么你就必须实现这些方法”。实现这些方法就是允许controller在它的delegate能够调用这些方法,而它的delegate知道什么时候调用哪种方法。delegate可以是任何一种对象类型,因此controller不会与某种对象进行耦合,但是当该对象尝试告诉委托事情时,该对象能确定delegate将响应。2.1.3 iOS开发帐号介绍iOS开发开发帐号之前分为两种:(1)个人帐号公司帐号:个人账号和公司帐号99美元每年,可以将开发的应用提交到App Store上审核销售,公司帐号还可以创建多个子帐号,和其他个人帐号几乎没有区别。(2)企业账号:企业账号299美元每年,虽然不能够上传到App Store上面,但是可以将打包的文件上传的应用管理平台供公司内部使用或者推广使用,企业帐户有一个优点就是能够不经过苹果审核直接提供下载使用,能够及时有效的更新版本并且处理开发中的bug。2.2 MySql数据库MySQL是一款关系型数据库管理系统,由MySQL公司开发,目前属于 Oracle公司。MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的关系数据库管理系统应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。2.3 友盟微社区友盟是全球领先的第三方全域大数据服务提供商,依赖于自主研发的全领域数据平台,为客户提供一站式数据化解决方案。一方面提供数据产品,包括APP开发工具、基础统计工具、广告效果监测工具等,另一方面提供数据输出及专业的数据分析和咨询服务,包括DMP、数据运营分析报告、垂直领域数据化解决方案等。友盟微社区,在帮助开发者在 APP 内快速建立一个专属的社区,让用户与开发者、用户与用户之间可以双向沟通,同时借助话题和关系链,用户可自行创造、传播高价值内容,提高 APP 粘性。2.4 高德地图SDK阿里巴巴旗下高德地图的导航功能不仅能够准确快速的计算两个位置的最佳路径,同时还能够及时查看路况播报交通拥堵路段。结合语音播报功能能够在进入监控区时及时提醒,在导航过程中能够在即将转弯时提前提示转弯方向。2.5 环境配置目前Xcode是7.3.1版本,需要OS X 10.11或者更高版本的Mac系统支持。在App Store上登录apple帐号就可以免费下载Xcode的最新版本,安装成功后就可以使用,不需要再安装其他软件,这配置环境这方面比其他的开发工具要强大完善的多,很方便快速开始开发。Xcode7版本开始免费使用真机测试,并且能够在不购买Apple Developer帐号的情况下打包测试,发布在fir或者蒲公英app管理平台上即可提供其他人下载测试,但是仅可提供临时测试,因为没有购买开发者帐号而打包的app非常不稳定,不能为公司使用。3 需求分析及可行性研究3.1 需求分析3.1.1 用户分类及权限eSchool主要面对校园推广,用户大多为校园学生。开放的注册平台对于所有拥有app二维码的人只要有一个未注册的手机号就可以成功注册,后台以注册手机号来标示用户身份。由于未添加其他限制,注册时不需要辨别身份,因此学校周边的社会人员也可以注册使用。但是用户与用户之前不产生直接的交易,因此也不会对用户造成过多的经济损失。用户的密码是通过加密记录在后台数据库的,修改密码需要通过手机的验证,加上iPhone本身的安全性,使得本应用在手机丢失时即使被破解了手机密码也不能得到应用账号的密码。3.1.2 用户需求校园内经常会举行一些活动,大多数活动需要购买一些物品以及奖品,有时活动结束后还需要去聚餐庆祝一下,或者去KTV玩一下,平时最常发生的就是吃饭,宿舍聚餐以及个人就餐。在这个过程中需要购买一些物品以及服务,在产生消费行为的时候会员卡就回发挥他的作用,为会员带来利益。消费者在网上看到某一家喜欢商店想要去的话还要先搜索地址然后再搜索路径,这就是一个长而且浪费时间和流量的过程,如果能够做到简单的app在显示商店或者服务的同时能够兼并电话直接点击拨打,和地址直接点击导航则更加方便用户使用,而且准确无误。当然有消费就有吐槽和爆料,论坛不仅能够做到而且还能够交流多个话题,在论坛中后台可以设置新热门话题也可以参与学校活动的互动,甚至可以在确认学生身份时用来公布学校的相关通知让用户更快更直接看到校园内部信息。论坛还能够将话题分开集中,方便用户查看某一话题,得到更加全面有趣真实的认知。3.1.3 安全性eSchoo面对的使用者主要是高校学生,学生或者其他人员使用手机号注册成为使用者,可以在会员大厅中选择自己喜欢的店加入会员,商家无法在用户不同意的情况下将用户添加为自己的会员。每次进入app时都会判断用户身份,请求数据时采用加密的参数来获取相关的数据。用户注册时需要输入或者选择相关的信息,选择的信息能够决定推荐会员卡的不同。使用过程中不涉及到用户与用户的联系,只是用户与商户的会员标示,因此正常情况下不会对用户造成经济损失,而且还能够保障用户在商户的权益。3.2 可行性研究3.2.1 技术可行性(1) 后台:后台使用PHP搭建,能够支持数据网络请求,管理mysql数据库,支持数据存储,判断用户登录时发送来的加密后的帐号密码是否匹配。注册时能够根据手机号记录加密的密码,也能够查询用户数据表,避免重复注册。退出后需要将密码以及帐号信息清空。登录后的其他数据请求,能够查询相关数据表返回sql语句所获取的结果,包含查询结果的json数据。(2) 客户端app:使用Xcode开发工具首先需要搭建一个通用的框架,框架完毕后建立分支,在分支上修改,主干可以创建多个分支,做不同的项目。在分支上根据最初设定的功能要先写好模块,模块间能够顺利流畅交互。支持网络请求数据,得到json数据后要将数据转为实体类型,获取数据后要将数据信息显示在之前准备的UI页面上,为UI控件添加事件完成不同的响应以及跳转交互。部分功能使用第三方库时集成sdk,添加支持库文件,能够简单明了的实现应用功能。3.2.2 经济可行性eSchool的创作过程中需要硬件设备和软件设备的同时支持,首先需要一个保存数据的后台服务器,其次需要开发软件所使用的Mac电脑,如果有必要的话需要一台iOS设备。后台数据使用卡卡兔公司后台提供的数据,客户端制作时只需要Mac电脑即可。在软件方面由于部分功能想要更好的实现的话就需要第三方的支持,使用第三方支持能够简化开发过程而且能够获得更好的实现。有些三方技术支持是需要收费的,但是大多数还是免费的,因此避免使用高级应用就可以减少经济成本。因此eSchool在经济可行性上来说还是比较乐观的。4 系统概要设计4.1 系统模块设计4.1.1 系统总体架构设计进入app首先会在本地查找账号信息,如果没有记录账号信息则需要登录,不支持游客访问模式,如果已经注册则直接输入账号密码登录成功就可进入首页,如果没有账号可以使用手机号注册一个账号,在填写了相关的个人信息注册成功后直接跳转到登录页面并且自动填补账号和密码,只需点击登录就可以了。eSchool主要包含三个模块:首页、扫描、个人信息,其中主要对首页、和个人信息两个模块进行了完善,扫描模块只是一个理想性功能,需要在完善app时事先写好扫描结果的规则,对于扫描结果进行不同的处理。首页中从上到下有三个功能模块,依次是轮播广告、分类会员卡、会员卡列表。轮播广告可以做到自动轮播的效果,系统设置2秒自动滑动一张图片,可以用来插播广告或者宣传热点。分类功能主要是四个丰富校园生活的小功能。在会员卡列表中显示的全是属于自己的会员卡,点击选中时直接进入会员卡详情页中;扫描模块中针对二维码扫描,点击扫描时能够调用相机,允许使用相机后将会开始扫描二维码,捕捉到二维码后立即返回并将扫描的信息显示在页面上方;个人信息页面用来显示用户信息,后期最好可以用来修改个人信息,系统总体架构如图4-1所示:图 4-1 系统总体架构4.1.2 分类功能架构设计在分类功能模块中分为四种功能,在校园新闻中主要是体现学校各学院的新闻动态,将学院新闻收集在一页中,通过选择点击查看新闻详情,集成的友盟论坛可以在后台设置话题后在客户端以话题发帖看帖子评论等,在餐厅中有会员卡和非会员卡,在详情页中主要有导航,拨打电话,增加或者删除会员的操作,在旅游模块中查看旅游景点以及联系推荐旅行社。分类功能架构如图4-2所示:图 4-2 分类功能架构4.1.3 会员卡详情设计会员卡详情页面可以说是主要的页面,用来显示会员的详细信息。包含会员卡商家设置的会员卡图片,店名,电话,商店的地址和分店的信息。其中点击电话时可以直接拨打商户电话联系商家,点击地址信息时能够首先定位到商户的地址,点击地图页上的导航时即可导航到商店。某些商家会有分店,对于有分店的会员卡商家可以在下方显示分店信息,点击分店信息时可以直接拨打分店号码联系分店。会员卡详情框架如图4-3所示:图 4-3 会员卡详情4.1.4 导航功能设计为app添加导航功能时需要先将高德地图的sdk导入到项目中去,添加支持库并设置info.plist中允许定位操作。然后在代码中使用高德地图提供的定位以及导航功能便可直接方便的做出导航功能,导航功能如图4-4所示:图 4-4 导航4.1.5 拨打电话功能设计拨打电话是调用苹果手机硬件自动拨打,在准备打电话时会将电话号码以苹果系统可以识别的方式封装,在号码前面加上“Tel:/”然后调用系统方法时会先判断设备有无拨打电话的功能,如果有则会自动识别出是在拨打电话,直接调用拨打电话的功能。拨打电话前会首先询问是否确定拨打电话,如果取消的话将会默认取消操作,如果确定的话就将进入拨打页面,拨打电话流程如图4-5所示:图 4-5 拨打电话4.2 系统数据表设计4.2.1 用户表的设计使用app首先要有帐户,帐户对应这个人信息,因此首先要有一个用户表来记录用户的信息。用户表信息需要记录在本地,因此需要将用户model归档到本地,在使用的时候解档,使用李明杰的归档与解档方法,相关代码如下:implementation UserDetail-(void)encodeWithCoder:(NSCoder *)aCoder self mj_encode:aCoder;- (instancetype)initWithCoder:(NSCoder *)aDecoder self = super init; if (self) self mj_decode:aDecoder; return self;end用户表如表4-1所示:表 4-1 用户表字段名字段中文字段类型是否可为空access_token账号唯一标示NSStringNOaddress地址NSStringYESbirthday生日NSStringNOcidIdNSStringNOemail邮箱NSStringYESgender性别NSStringNOiconurl头像地址NSStringYESidentityid身份NSStringNOmobile手机NSStringNOrealname真实姓名NSStringYESschoolid学校IDNSStringNOschoolname学校名NSStringNO4.2.2 学校表的设计在注册时需要选择学校,那样才能加载学校附近的商户,学校用来限定加载商户数据的范围。学校表如表4-2所示:表 4-2 学校表字段名字段中文字段类型是否可为空bid学校IDNSStringNOname学校名NSStringNOprovinceid省份IDNSStringNOcityid城市IDNSStringNO续表4-2:districtid小区IDNSStringNOadress地址NSStringNO4.2.3 会员卡表的设计进入首页后会主动加载会员卡列表,在获取的数据中有一个会员卡数组,需要将数组里面的单个数据转为会员卡model后存入数组,然后刷新列表即可显示出所有的会员卡。会员卡表如表4-3所示:表 4-3 会员卡表字段名字段中文字段类型是否可为空backimageurl背景图地址NSStringNObid商户IDNSStringNOcard_category卡分类NSStringNOcardid卡IDNSStringNOcardname卡名NSStringNOcardtypes卡类别NSStringNOcid持卡人IDNSStringNOcreationtime创建事件NSStringNOfrontimageurl小图地址NSStringNOID索引NSStringNO4.2.4 分类表的设计在首页的中部有对于会员卡的分类标示,后台数据将会员卡分为四种,点击会跳转到相应的会员卡列表中,分类表如表4-4所示:表 4-4 分类表字段名字段中文字段类型是否可为空actionandroid事件安卓NSStringYESactionios事件iOSNSStringYESactiontype事件类型NSStringNOactionurl事件地址NSStringYESiconurl图像地址NSStringNO续表4-4:ID编码NSStringNOindustryid地域IDNSStringNOname分类名NSStringNOschool_id学校IDNSStringNOstatus状态NSStringNOsubindustryid分类IDNSStringNO4.2.5 卡详情表的设计由分类卡列表或者首页进入卡详情事加载卡详情的信息,卡详情内包含商户的信息和会员卡的信息,也包含商户的分店信息,因此需要后台操纵的表比较多,在次仅列出卡信息表,会员卡信息表如表4-5所示:表 4-5 卡详情信息表字段名字段中文字段类型是否可为空address地址NSStringNObid商户IDNSStringNObiztype商户类型NSStringNOcityid城市IDNSStringNOcreationtime创建时间NSStringNOemail邮箱NSStringNOindustryid分类IDNSStringNOindustryname分类名NSStringNOisrecommend是否为推荐卡NSStringNOlast_update最新更新时间NSStringNOlatitude纬度NSStringNOlogourl图片地址NSStringNOlongitude经度NSStringNOmemo介绍NSStringYESname卡名NSStringNOprovinceid省份NSStringNOrank等级NSStringNO续表4-5:rankname等级名NSStringNOrecommendcode推荐号NSStringNOtel手机号NSStringNO4.2.6 分店表的设计在会员卡详情内某些店会有分店的设置,在加载会员信息时会加载出分店信息,分店信息如表4-6所示:表 4-6 分店表字段名字段中文字段类型是否可为空addr地址NSStringYESbid商户IDNSStringYEScreationtime创建时间NSStringNOID编码址NSStringYESisdeleted是否被删除NSStringNOisshow显示NSStringNOlast_update最后一次更新NSStringNOname名称NSStringNOlatitude纬度NSStringNOlongitude经度NSStringNOtel电话NSStringNO其他还有一些表在次就不一一赘述了。5 系统实现5.1 登录注册模块5.1.1 注册进入app首先会在本地查找账号信息,如果没有记录账号信息则需要登录,如果没有账号可以使用手机号注册一个账号,在填写了相关的个人信息注册成功后直接跳转到登录页面并且自动填补账号和密码,只需点击登录就可以。注册页面的视图排版使用xib简化了代码的操作。注册页面如图5-1所示,补全信息页面如图5-2所示:图 5-1 注册图 5-2 补全信息5.1.2 登录在拥有账号后可以在登录页面输入账号登录,登录页面中账号是注册时所使用的手机号,密码是自己注册时设置的密码,在本系统中数据库存储的密码是加密后的文本,在登录时会后台会将密码以相应的加密方式加密后与数据库记录的密文对比,判断是否登录成功。登录页面如图5-3所示:图 5-3 登录图 5-4 首页5.2 首页模块登陆成功时直接显示的页面就是首页,首页由三部分组成,由图5-4可以看出首页中主要具有三部分模块,在轮播广告模块中循环播放了三个主页点击进入河南理工大学的主页,教务处主页和贴吧主页,在分类功能模块中又细分了四种功能模块,在会员卡页面中显示全部学校周边的商户的会员卡。首页效果如图5-4所示:5.2.1 轮播视图首页中最上方选用UIScrollView控件用来完成轮播广告的显示,scrollview具有滑动以及点击处理功能,在contentview中添加imageview控件,imageview显示预先设置好的image。通过添加imageview时将控件的rect值中的x坐标值依据屏幕的宽度修改,并且设置scrollview的pagingEnabled属性能够保证每次滑动时只要超过一半那么滑动的就是一个整页而不至于滑动的一半就停止了滑动,统一存放在scrollview中也可以达到上下平齐的效果,让页面更加整齐有效。下方添加UIPageControl能够实现页码的效果,可以直接的看到页码的数量以及当前滑动到的位置,为pagecontrol添加点击事件能够做到点击pagecontrol时也能达到滑动的效果。为达到自动轮播的效果可使用nstimer定时器,设定循环时间间隔后可循环执行设定好的方法完成广告的轮播。在将图片添加到滚动窗口时为每一个图片容器都添加一个点击事件,在点击图片容器时能够根据点击的不同图片跳转到同一个webview页面时加载不同的路径地址从而显示不同的内容。轮播广告的效果如首页最上方所示,轮播效果的主要代码如下:/设置滚动图片- (void)prepareBanner NSArray *imgArray = coverEye.jpg,sad.jpg,happy.jpg; for (int i = 0; i 3; i +) UIImageView *imgV = UIImageView alloc initWithFrame:CGRectMake(i * WIDTH, 0, WIDTH, 150); /设置图片显示格式 imgV.contentMode = UIViewContentModeScaleAspectFit; imgV.image = UIImage imageNamed:imgArrayi; imgV.backgroundColor = UIColor whiteColor; /将图片控件添加到scrollview中 self.scrollView addSubview:imgV; /设置scrollview的contentsize属性,保证可水平方向滚动 self.scrollView.contentSize = CGSizeMake(WIDTH * 3, 150); /让scrollview有分页效果,不至于滑动时停在图片的中间 self.scrollView.pagingEnabled = YES; self.pageControl.userInteractionEnabled = YES; /为pagecontrol添加点击事件,控制scrollview的滑动 self.pageControl addTarget:self action:selector(pageChange:) forControlEvents:UIControlEventValueChanged; /自动轮播 self.timer = NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:selector(changePageNum) userInfo:nil repeats:YES; self.timer fire;/自动轮播,改变页码- (void)changePageNum self.page += 1; UIView animateWithDuration:0.25f animations: self.scrollView.contentOffset = CGPointMake(self.page % 3 * WIDTH, 0); ;/点击页码时事件响应- (void)pageChange:(UIPageControl *)pageControl UIView animateWithDuration:0.25f animations: self.scrollView.contentOffset = CGPointMake(pageControl.currentPage * WIDTH, 0); ;5.2.2 分类功能首页的中间位置是分类功能栏,使用UICollectionView控件完成单行多item的显示,使用自定义collectionview时必须设置collectionviewlayout属性,设置layout的itemsize属性能够控制每一个item的大小,同时为了适应不同宽度的屏幕也要依据屏幕宽度设置item的间距最小值,能够在屏幕宽的时候拉伸间距来适应屏幕。由于使用autolayout的布局方式,因此不需要在代码中初始化相关的控件,只需从storyboardxib拖拽到代码中即可,也不需要写相关的约束大小和位置的代码,如果需要不规则改动某一控件的大小或者位置需要将那一控件的约束拖拽到代码中成为属性,在需要更改的位置处对约束属性重新赋值即可达到预期的效果,改变属性的值时以最后一次赋值为准,因此对于属性值的更改需要掌握好代码的生命周期以及调用顺序和线程延迟等各方面因素的影响。相关设置代码如下:/设置分类栏- (void)prepareFunc /自定义collectionview时设置layoutUICollectionViewFlowLayout *layout = UICollectionViewFlowLayout alloc init;/每一个item的大小layout.itemSize = CGSizeMake(50, 50);/item的最小间距layout.minimumInteritemSpacing = (WIDTH - 240)/3;/item在collectionview中的位置约束 layout.sectionInset = UIEdgeInsetsMake(5, 10, 5, 10); /设置属性self.collectionView.collectionViewLayout = layout;/注册item,作为设置item的复用标示 self.collectionView registerNib:UINib nibWithNibName:CardCategoryCell bundle:nil forCellWithReuseIdentifier:CardCategoryCell;设置好分类功能栏后需要为每一个item添加点击事件,完成对相应的会员卡列表的显示,但是如果对于每一个item添加事件将会是一个很大的工程,而且代码繁琐容易出现bug,collectionview的代理方法中有一个能够自动检测item的点击,只需遵循collectionview的代理后实现其代理方法就可在点击item的时候检测到事件,而且对于每一个item都能够区分开来,保证点击不会出现混乱。因此直接在代理方法中添加对item点击的相应处理即可,相关代码如下:#pragma mark - UICollectionViewDataSource,UIScrollViewDelegate- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath static NSString *collectionID = CardCategoryCell; CardCategoryCell *cell = collectionView dequeueReusableCellWithReuseIdentifier:collectionID forIndexPath:indexPath; if (!cell) cell = NSBundle mainBundle loadNibNamed:collectionID owner:nil options:nil lastObject; if (indexPath.row = 0) /校园新闻 Lbl.t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论