android高仿今日头条,高仿今日头条App

本文详细介绍了如何使用MVVM + RAC架构,结合YYCache实现Android版今日头条的高仿。通过网络请求示例展示了如何处理数据,包括图片加载、频道编辑、首页动画效果、视频播放等功能的实现细节。此外,还涉及了微头条界面的滑动隐藏效果、正则匹配和YYText的结合应用,以及保证界面流畅性的策略。
摘要由CSDN通过智能技术生成

采用了MVVM + RAC的方式,对微头条界面 使用YYCache 进行了本地缓存

效果跟目前最新的今日头条有些地方不一样,因为今日头条最近更新了新版本

下面对项目中的一些效果和实现思路做下介绍

如果您有什么问题或者建议,欢迎在简书下面留言或者在github上issue me

网络请求

以首页的顶部的菜单栏为例

bbb15c80aa19

WX20180123.png

开始网络请求

- (void)viewDidLoad {

[super viewDidLoad];

HNNavigationBar *bar = [self showCustomNavBar];

[bar.searchSubjuct subscribeNext:^(id _Nullable x) {

NSLog(@"%@",x);

}];

[self configUI];

@weakify(self)

[[self.titleViewModel.titlesCommand execute:@13] subscribeNext:^(id _Nullable x) {

@strongify(self);

self.models = x;

[self reloadData];

[self configPageVC];

}];

}

HNHomeTitleViewModel 中网络请求的处理

这里对网络请求的处理,相对于正常对AFNetWorking的封装,又进行了进一步的封装.

可以参考链接 https://www.jianshu.com/p/1f5cd52981a1

_titlesCommand = [[RACCommand alloc]initWithSignalBlock:^RACSignal * _Nonnull(id _Nullable input) {

return [RACSignal createSignal:^RACDisposable * _Nullable(id _Nonnull subscriber) {

HNHomeTitleRequest *request = [HNHomeTitleRequest netWorkModelWithURLString:HNURLManager.homeTitleURLString isPost:NO];

request.iid = HN_IID;

request.device_id = HN_DEVICE_ID;

request.aid = [input intValue];

[request sendRequestWithSuccess:^(id response) {

NSDictionary *responseDic = (NSDictionary *)response;

responseDic = responseDic[@"data"];

NSMutableArray *models = [NSMutableArray array];

if (responseDic.count > 0) {

NSArray *dicArr = responseDic[@"data"];

for (int i = 0; i < [dicArr count]; i++) {

HNHomeTitleModel *model = [[HNHomeTitleModel new] mj_setKeyValues:dicArr[i]];

[models addObject:model];

}

[subscriber sendNext:models];

[subscriber sendCompleted];

}else {

[MBProgressHUD showError: HN_ERROR_SERVER toView:nil];

}

} failure:^(NSError *error) {

// do something

}];

return nil;

}];

}];

首页图片的展示

bbb15c80aa19

WX20180123.png

这个界面上展示的图片都是webp格式的. SDWebImage需要下载一个依赖库才能支持

SDWebImage 文档上关于如何加载webp格式图片的介绍很简单 :

pod 'SDWebImage/WebP'

但是当你实际操作起来,这个东西是一直下载不下来的,即使你开了vpn

你可以看下这个连接的内容: https://www.jianshu.com/p/4468f03cf606

如果还是下载不下来,就还需要调整一些东西,可以在简书下面给我留言.

编辑频道界面

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值