欢迎光临
我们一直在努力

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

建站超值云服务器,限时71元/月

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

项目介绍:

下载地址 欢迎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

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 一个可快速集成的新闻详情界面框架,类似今日头条,腾讯新闻
分享到: 更多 (0)