php 仿36氪网站源代码,仿36氪(附源代码)

前言:

这是我2016年3月开始写的,利用课余时间全心投入的项目,本以为是凭着轻松愉悦的方式来学习的,中途遇到bug解决bug的时候,每天晚上几乎都是写到寝室关灯,还有一次使用Github不当写了五天的代码一夜恢复到解放前,现在每次Commit都会把项目复制一份,项目使用OC写的,主要是想记录下OC项目整个过程,在过渡学习Swift,写的还不完善,不足之处还请见谅,由于时间比较匆忙,这个月还剩下十来天忙着考试,4月份会把后续功能实现,这是第一次把以项目的形式分享到博客。

项目描述(附源代码底部):

开源项目为36氪,一款提供股权类互联网金融平台APP,项目为纯代码,XIB+代码开发,所有的数据都是通过Charles抓包工具获取到的, 图片通过Extractor解压得到(部分图片找不到),视频播放器是通过36氪开源播放器(采用View+MPMoviePlayerViewController)改进的播放器使用的是View + AVPlayer,支持播放mp4、mov等格式,网络和本地视频同时支持,支持Cell中全屏和小屏自动感应旋转屏幕,参考WMPlayer,无需第三方库支持。

效果图:

首页效果

0ccf4ea14e79?from=singlemessage

侧滑效果

0ccf4ea14e79?from=singlemessage

其他模块首页效果

0ccf4ea14e79?from=singlemessage

氪TV首页效果

0ccf4ea14e79?from=singlemessage

新闻内容页效果

0ccf4ea14e79?from=singlemessage

轮播页内容效果

0ccf4ea14e79?from=singlemessage

评论页效果

0ccf4ea14e79?from=singlemessage

搜索页效果

0ccf4ea14e79?from=singlemessage

离线缓存

项目当中用到的缓存方式是JSON数据以文件的形式保存,因为要放到文件当中存储,所以在这里JSON要经过一定的转化,如果不经转化取出来的字典数组是为空的,我的方式是这样的,具体可以参考HttpRequest文件和NewsVC

保存的过程:NSDate->NSString

取出过程 NSString->JSON对象序列化-》(字典数组)NSArray->模型数组(NSSArray)

值得注意点:

数据解析:[{}]格式 使用 字典数组 -> 模型数组 ,{} 字典 转一个模型

AVPlayer:可以通过videoGravity有三种形式设置播放形AVLayerVideoGravityResizeAspect,AVLayerVideoGravityResizeAspectFill,和AVLayerVideoGravityResize。默认的是AVLayerVideoGravityResizeAspect:会出现顶部和底部分别有20大小的间隙,AVLayerVideoGravityResize(项目当中用到的):拉伸,以填补CALayer的界限AVLayerVideoGravityResizeAspectFill:保留长宽比;填补CALayer的界限。

解决网速慢的问题:(用寝室CMCC播放视频的时候会出现视频停止的效果,需要再次点击才可以继续播放,在卡在点的情况),我的解决办法是这样的,通过判断当前时间和播放时间进行比较,如果一致则出现停顿情况,具体可以详见项目

讨论页Cell自适应:我的思路是这样的,首先cell先计算好文本高度,然后将高度的值赋给heightLabel(用于保存每个cell的高度),控制器在从heightLabel取出(这样减少一次在heightForRowAtIndexPath方法在计算一次高度)

新闻内容页:顶部用户简介是一个cell,新闻内容页是一个经过嵌套webView的cell

ESJsonFormat-Xcode在开发中用到这个工具,所以文件命名的时候不规范,还请见谅

希望顺便点一下右上角的⭐️Star ,朋友的鼓励和支持是我继续分享的动力

github地址仿36氪 源文件地址

视频播放器:源文件地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值