newLife

来源:互联网 发布:淘宝积分不能登录 编辑:程序博客网 时间:2024/06/18 09:55

很庆幸,新项目优点类似于豌豆荚的《开眼》,于是我便认识了《开眼》。

之所以庆幸,是因为我发现这款app绝对是一个上上上成之作!到处都是细节,到处都是优化。

我先从开场动画说起:开眼的开场小动画虽然简单,可是它过渡的毫无痕迹,动画结束切换到主界面,感觉切换用的几秒时间刚刚好。一种慢节奏,贴近生活的节奏。

当你点击一个cell的时候,app从这个cell的位置弹出一个DetailView,过渡动画应用的极好,让人柑橘就像点击的图片被放大了一样。丝毫觉不出是另一个View。

再来说详情页面,当在详情页面左右切换图片的时候,会发现图片不是一个简单的ScrollView左右滚动,而是利用了layer的mask属性,自己封装的一个视图切换控件。效果相当棒!(话说博主考虑也封装了一个)
提到我自己封装的这个视图切换控件,当初我还不知道这个效果怎么实现,我拿给我们UI特效师看的时候,他告诉我说:“这个东西很简单,就是一个遮罩效果”。当时我不理解他所说的遮罩是个什么东西,他用Quartz Composer给我演示了一下遮罩的效果,瞬间懂了。然后我去百度 iOS 遮罩,结果竟然是。。mask!!!
慢慢的懂了mask是这么强大,就像是带镂空的图层,镂空的地方才能被显示。这样就可以实现开眼那种图片切换的效果了。

然而这个切换效果只是页面的上半部分,下面还有更吊的。稍微仔细一看会发现下面不是纯黑色图片,而是上面的图片做了 倒影+高斯模糊+半透明黑色 融合处理。随着滑动手势的偏移量,高斯模糊的透明度还有变化!这个确实厉害。后来在网络不好的情况下,我发现上面图片还没加载完成,下面的高斯模糊就有了,于是我想,他可能不是真正的高斯模糊,而有可能是提前做好了一张高斯模糊的图片。。。哈哈哈 机智!

然而我们的项目有比他们吊的地方:开眼只有视频播放,而我们要播放的类型有很多种(包括但不限于:图片、视频、360°全景视频、playcanvas…)
其中的playcanvas需要服务器环境才能解析,我要想在本地播放这种东东的话,就必须搭建手机播放器,于是,说搞就搞。在同学的指引下,我在github上找到了开源的CocoaHttpServer库,用起来很简单,只是文件结构稍微有点复杂,需要看着别人的结构一点点搭建。我博客里有教程:利用CocoaHttpServer搭建本地手机服务器
根据教程轻松搭建完了服务器,然后就是把zip包下载到本地(大文件下载可以用AFHTTPRequestOperation的inputStream\outputStream来搞定),把下载完的zip包解压到一个指定路径,在这里 我又要啰嗦一下这个路径的问题了:
iOS允许用户操作的文件夹只有沙盒里面的Documents、Library和tmp及其子文件夹。
三个文件夹各有作用:

/**    1:Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录    2:tmp:存放临时文件,iTunes不会备份和恢复此目录,也有人说此目录下文件可能会在应用退出后删除,还有人说此文件夹的内容会在重启后清空,但我测试了一次,结果是:当手机存储空间不太够用时,下次重启手机会清空该文件夹。    3:Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除    */

关于权限问题,其实就是拼接路径的时候不要因为自己清楚路径,就这么写:

NSString *filePath = [NSString stringWithFormat:@"xxxxx"];

而应该用系统的方法:

NSString *filePath = [aSubFilePath stringByAppendingPathComponent:@"fileName"];

否则你会在删除或创建文件的时候被告知:没有权限!

唉,就啰嗦这么多了,以后经验会越积累越多。加油!

0 0
原创粉丝点击