无纸化办公系统--工作总结
1.图形绘制
需求:按照凭数(有1屏,2屏,4屏)展示图片 且需放大图片,最重要的是要可以在图片上进行自由标注并将图片按原尺寸保存到本地。
进入公司的时候就有另外一个开发人员在做这一块,本来是不用我做的,无奈后来因为各种原因,公司只剩我一个开发人员了,因此这个重担就交给我了。
分析:(1)将office文档转换成图片显示
解决方案:借助webView显示office文档,再转换pdf格式,再将pdf转换成图片保存到本地。
office转pdf参考自: http://woniu1983.iteye.com/blog/1766962
pdf转图片参考自:http://woniu1983.iteye.com/blog/1767008
(2)1屏,2屏,4屏 显示,并放大缩小图片
解决方案:利用UICollectionView 的cell (通过identifier 来区分复用哪种cell) 显示图片, 再对单个图片点击弹出scrollView+imageView 对点击图片进行放大缩小(scrollView自带放大缩小属性)
(3) 在图片上进行绘图并保存替换原图片
画: 给UIImageview添加画图的扩展类(添加开始画图/停止画图/保存的方法),再将UIImageview 添加到cell上
存:
// 开启上下文 UIGraphicsBeginImageContextWithOptions(self.bounds.size, YES, 1.0); // 获取当前上下文 CGContextRef context = UIGraphicsGetCurrentContext(); // 渲染图层到上下文 [self.layer renderInContext:context]; // 从上下文中获取图片 UIImage* SaveImage = UIGraphicsGetImageFromCurrentImageContext(); // 关闭上下文 UIGraphicsEndImageContext();
获取到图片后保存到本地(名字与之前名字相同即可,做替换图片的操作)
2.socket长/短连接
需求:作为客户端发送消息,使用短连接,作为服务器接收消息,使用长连接,因为需要时刻监听收到的消息。
分析:(1)什么是长/短连接:
短连接:从连接建立到关闭持续的时间比较短。过程大致是这样的建立连接-->交换数据-->关闭连接
长连接:从连接建立到关闭持续的时间比较长。过程大致是这样的建立连接-->交换数据-->交换数据---> ……-->交换数据 -->关闭连接
(2)socket通信详解:http://blog.csdn.net/xiaoweige207/article/details/6211577
解决方案:这里使用的是第三方:GCDAsyncSocket 由于是前一个开发人员下载的,这里我就不贴下载链接了。 使用介绍参考:http://zeeyang.com/2016/01/17/GCDAsyncSocket-socket/
项目使用案例:(1)简单的聊天功能。项目中的聊天分为点对点聊天跟群组聊天。
进入页面查询未读数据,启动定时器每10秒向在线人员发送消息,收到回信后,使用通知传值给聊天页面,进行数据刷新展示。
(2)客户端发送消息给投影端,让投影端做相应的操作,比如绘图等。
3.从FTP服务器下载/上传文件
需求:从FTP上下载文件存本地
分析:FTP是什么:
FTP(File Transfer Protocal)是用于Internet上的控制文件的双向传输的协议。同时,它也是一个应用程序。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息,让用户与用户之间实现资源共享。
解决方案:使用 WhiteRaccoon github链接
注:使用 AFNetworking 也实现相同的功能。 参考
4. 多屏播放
需求:播放区域固定4个播放器,点击播放则播放一个视频,最多同时播放4个。
分析:见 http://www.cnblogs.com/Cyan-zoey/p/5830387.html