登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

一个可快速集成的新闻详情界面框架,类似今日头条,腾讯新闻

[复制链接]
Tag:

项目介绍:

下载地址 欢迎star
github:LSNewsDetailWebviewContainer

中文说明

LSNewsDetailWebviewContainer是一个可快速集成的新闻详情界面框架,类似今日头条,腾讯新闻,网易新闻等,上面webview(显示网页文章内容),下面tableview(显示评论列表)

  • 思路

通过reveal对今日头条分析,得知今日头条是外部包装了个UIScrollview,包含WKWebview和UITableview,但是二者都不可滚动,UIScrollview可滚动,通过监听UIScrollview的contentOffset改变,从而改变WKWebview和UITableview的contentOffset以及二者的frame。腾讯新闻也是使用此方式,只不过大同小异,简书是在WKWebview里添加UITableview,但是此方式使用起来不灵活,发现今日头条这种是体验最好,使用起来最灵活的方案。所以本代码方案和今日头条相同,当然你也可以去尝试其他方案的实现

  • 特性

1.可以加载URL也可以加载HTML字符串

2.可以使用默认的WKWWebview、UITableview,也可以自定义用参数传入

3.既可以使用masonry,也可以使用frame(如果使用frame,那么打电话那种界面需要自己适配好,一旦外界适配好那么里面子控件会自动适配)

4.使用起来很灵活,本框架只为你设置布局,具体显示啥内容还是由你决定,包括WKWebview代理和UITableview的代理和数据源都是由你来实现

手动安装

通过 Clone or download 下载LSNewsDetailWebviewContainer 文件夹内的所有内容。将LSNewsDetailWebviewContainer文件夹下的LSNewsDetailWebviewContainer.h,LSNewsDetailWebviewContainer.m拖到你的项目里,然后import LSNewsDetailWebviewContainer.h

使用方式

  • 1.加载URL

LSNewsDetailWebviewContainer *container=[[LSNewsDetailWebviewContainer alloc]init];
container.URLString=@"http://xueit.cn";;//设置请求地址
container.cachePolicy=NSURLRequestReturnCacheDataElseLoad;//缓存策略
container.scrollview.delegate=self;//监听整个大scrollview.contentOffset的变化
container.tableview.mj_footer=[MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
container.tableview.mj_footer.automaticallyChangeAlpha=YES;
container.tableview.dataSource=self;
container.tableview.delegate=self;
container.tableview.tableFooterView=[UIView new];
container.webview.navigationDelegate=self;
self.detailWebviewContainer=container;
[self.view addSubview:container];
[container mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.right.mas_equalTo(0);
make.bottom.mas_equalTo(-44);
}];
//加载URL请求
[container loadRequest];
  • 2.加载HTML字符串 使用自定义WKWebview和UITableView(此处仅为演示,不是非得这么组合用,你也可以加载HTML使用默认的webview和tableview)

LSNewsDetailWebviewContainer *container=[[LSNewsDetailWebviewContainer alloc]init];
container.URLString=@"http://xueit.cn";;//设置请求地址
container.cachePolicy=NSURLRequestReturnCacheDataElseLoad;//缓存策略
container.scrollview.delegate=self;//监听整个大scrollview.contentOffset的变化
container.tableview.mj_footer=[MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
container.tableview.mj_footer.automaticallyChangeAlpha=YES;
container.tableview.dataSource=self;
container.tableview.delegate=self;
container.tableview.tableFooterView=[UIView new];
container.webview.navigationDelegate=self;
self.detailWebviewContainer=container;
[self.view addSubview:container];
container.frame=CGRectMake(0, 0, self.view.frame.size.width, [UIScreen mainScreen].bounds.size.height-64-44);
//加载HTML字符串
NSData *data = [NSData dataWithContentsOfURL:[[NSBundle mainBundle]URLForResource:@"1.json" withExtension:nil]];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
[self.detailWebviewContainer loadHTMLString:dict[@"data"][@"content"]];

演示图,具体其他演示还请下载demo查看

image

相关源码推荐:

我来说两句
*滑动验证:
所有评论(9)
op568f 2018-12-18 10:17:58
学习...学习...
回复
Ek645 2018-12-18 10:18:07
好好 学习了 确实不错
回复
莫应有道 2018-12-18 10:18:16
帮帮顶顶!!
回复
inta加加 2018-12-18 10:18:24
膜拜大神~
回复
hellokenken 2018-12-18 10:18:30
学习...学习...
回复
A7472 2018-12-18 10:18:44
code4app确实是个好地方,必须支持~
回复
code4app热心网友 2018-12-18 10:35:13
楼主用心了,内容非常精彩。
回复
梦一城 2018-12-18 11:08:14
强烈支持楼主ing……
回复
梦一城 2018-12-18 11:11:30
请问xcode什么版本
回复
提取码:  下载次数:28 状态:已购或VIP 售价:0(原价:15)金钱 下载权限:初级码农 
1203 0 28
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表