iOS新闻客户端开发教程8-加载更多和新闻详情

今天介绍下iOS新闻客户端App的2个功能点的开发:新闻列表加载更多 和 新闻详情页。

新闻列表加载更多

1.新建加载更多的单元格Cell,NewsMoreCell.xib
拖拽Label和Loading框,设置约束,如下图:
这里写图片描述

2.新建NewsMoreCell类

//NewsMoreCell.h
#import "BaseCell.h"@interface NewsMoreCell : BaseCell@end


//NewsMoreCell.m
#import "NewsMoreCell.h"@implementation NewsMoreCell-(void)initCell
{[super initCell];
}@end    


3.修改NewsMoreCell.xib的类Class为NewsMoreCell
4.新闻列表加载更多实现
修改NewsControll.m

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier = nil;
BaseInfo *info = nil;if (indexPath.row < self.listData.count) {cellIdentifier = self.cellIdentifier;info = [self.listData objectAtIndex:indexPath.row];
}
else {cellIdentifier = @"NewsMoreCell";[self requestNextPageServerOp];
}BaseCell *cell = (BaseCell*)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];if (cell == nil) {NSArray* Objects = [[NSBundle mainBundle] loadNibNamed:cellIdentifier owner:tableView options:nil];cell = [Objects objectAtIndex:0];[cell initCell];
}
[cell setCellData:info];return cell;
}

//加载更多
cellIdentifier = @”NewsMoreCell”;
[self requestNextPageServerOp];

5.Command+R运行,得到如下图效果便实现了加载更多的功能
这里写图片描述

新闻详情页

1.新闻详情页是基于HTML5模板引擎开发的静态页面
新建视图DetailPage.xib,拖拽WebView组件到布局上,如下图
这里写图片描述

2.新建DetailPage类

//DetailPage.h
#import "WebViewController.h"
#import "NewsInfo.h"@interface DetailPage : WebViewController@property(nonatomic, strong) NewsInfo   *newsInfo;@end


//DetailPage.m
#import "DetailPage.h"
#import "ContentInfo.h"
#import "GetContent.h"
#import "ContentImageInfo.h"@implementation DetailPage-(void)viewDidLoad
{[super viewDidLoad];self.barBackgroudImage = @"NavBarWhite";
}-(void)viewWillAppear:(BOOL)animated
{[super viewWillAppear:animated];[self setNavigationLeft:@"NavigationBackBlack.png"sel:@selector(doBack:)];[self setStatusBarStyle:UIStatusBarStyleDefault];
}- (void)loadHtml
{[self showIndicator:LoadingTip autoHide:NO afterDelay:NO];[self executeContentOp];
}- (void)executeContentOp
{NSString *url = [NSString stringWithFormat:DetailURLFmt, _newsInfo.ID];NSDictionary *dictInfo = @{@"url":url,@"aid":_newsInfo.ID};_operation = [[GetContent alloc] initWithDelegate:self opInfo:dictInfo];[_operation executeOp];
}- (void)opSuccess:(ContentInfo *)info
{_operation = nil;NSString *urlString = [[NSBundle mainBundle] pathForResource:@"content_template2" ofType:@"html"];NSString *htmlString = [self htmlConvert:info];[_webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:urlString]];
}- (NSString *)htmlConvert:(ContentInfo *)info
{NSString *file = [[NSBundle mainBundle] pathForResource:@"content_template2" ofType:@"html"];NSString *html = [[NSString alloc] initWithContentsOfFile:file encoding:NSUTF8StringEncoding error:nil];html = [html stringByReplacingOccurrencesOfString:HtmlBody withString:info.body];html = [html stringByReplacingOccurrencesOfString:HtmlTitle withString:info.title];html = [html stringByReplacingOccurrencesOfString:HtmlSource withString:info.source];html = [html stringByReplacingOccurrencesOfString:HtmlPTime withString:info.ptime];html = [html stringByReplacingOccurrencesOfString:HtmlDigest withString:info.digest];html = [html stringByReplacingOccurrencesOfString:HtmlSourceURL withString:info.sourceurl];if (info.images.count > 0) {NSString *img = nil;for (ContentImageInfo *imageInfo in info.images) {img = [NSString stringWithFormat:HtmlImage, imageInfo.src];html = [html stringByReplacingOccurrencesOfString:imageInfo.ref withString:img];}}return html;
}@end



3.增加新闻列表单元格点击事件

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{DetailPage *page = [[DetailPage alloc] init];page.newsInfo = [self.listData objectAtIndex:indexPath.row];page.hidesBottomBarWhenPushed = YES;UIViewController *owner =  self.owner;[owner.navigationController pushViewController:page animated:YES];
}

4.Command+R运行查看,得到如下图效果即开发好了新闻详情页
这里写图片描述

github源码:https://github.com/tangthis/NewsReader
个人技术分享微信公众号,欢迎关注一起交流
这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/64412.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 实践:做一款新闻 APP

跟代码相关的工作,大多唯手熟尔,所以这里花了点时间做了款简易版的新闻 APP,虽然都是些基础的内容,不过还是可以加深自己对部分代码的理解。至少,可以加深自己的记忆 步骤 依赖库网络请求网络解析界面布局最后运行界面运行GIF完整代码下载地址(github)依赖库 过程中需要…

【苹果iMessage相册推信息推】那些新功效理当可以或许压倒您。保护用户隐私是苹果的起点之一

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

iOS 推送手机消息背后的技术

作者&#xff1a;allenzzhao&#xff0c;腾讯 IEG运营开发工程师 消息推送我们几乎每天都会用到&#xff0c;但你知道iOS中的消息推送是如何实现的吗&#xff1f;本文将从推送权限申请&#xff0c;到本地和远程消息推送&#xff0c;再到App对推送消息的处理等多个步骤&#xf…

微信里有人每天早上发的早报新闻是从哪里获取的?

微信里有人每天早上发的早报新闻是从哪里获取的? 是专门有人做这种新闻搜集嘛?还是有什么渠道可以获取这样的早报新闻资讯呢? 其实,他们都是从一些大的新闻网站上挑选每日重要的新闻资讯,一般是12条,整理好,然后第二天早上发到群里或朋友圈中,使人们利用碎片化时间,很…

iOS新闻客户端开发教程7-新闻列表

在上教程中&#xff0c;我们介绍了二级导航栏的开发&#xff0c;今天我们来讲解iOS开发中非常常用和重要的组件&#xff1a;“列表”&#xff0c;即UITableView。本节课程将会介绍横向滚动列表和竖向滚动列表&#xff0c;分别来实现二级栏目滑动切换和新闻内容列表的功能。 UIT…

(Android+IOS)正在做一个新闻App,做的差不多了,听听大家的建议 (图)

(AndroidIOS)正在做一个新闻App,做的差不多了,听听大家的建议! 新闻采集器做好了,前端展示APP界面感觉还不是很好,还需要改进改进,希望发布(Android和IOS版本)前听听大家的建议! 新闻采集器做好了,前端展示APP界面感觉还不是很好,还需要改进改进,希望发布前听听大家的建议!

iOS 摸鱼周报 #83 | ChatGPT 的风又起来了

本期概要 本期话题&#xff1a;各大搜索引擎开始接入类 ChatGPT 功能本周学习&#xff1a;Python 中的匿名函数与闭包内容推荐&#xff1a;iOS 越狱检测、获取虚拟内存状态、使用 KeyChain 进行持久化等内容摸一下鱼&#xff1a;Stable Diffusion 功能尝鲜&#xff1b;关于技术…

编程和数学是什么关系?编程学习为什么会这么火呢?

近两年&#xff0c;编程学习成为了一个热门话题&#xff0c;其热度不亚于之前的奥数&#xff0c;为什么突然会有这么多人想要学编程&#xff0c;其中不限于互联网从业者&#xff0c;而更多是中小学学生&#xff0c;那么&#xff0c;今天悉之君就带大家一探究竟。 什么是编程&a…

计算机编程数学英语不好怎么办,英语和数学不好的人是不是学不会编程?

原标题&#xff1a;英语和数学不好的人是不是学不会编程&#xff1f; 收到很多咨询的留言&#xff0c;学生总是会问&#xff1a; “我成绩不好&#xff0c;能学好编程吗&#xff1f;” “我数学不好是不是代表逻辑思维不行&#xff1f;” “我英语都不及格&#xff0c;那么多单…

用编程学数学:让数学不枯燥,让编程不神秘!

许多人总爱问&#xff1a;编程那么难&#xff0c;能学好吗&#xff0c;或者学编程到底能干啥&#xff1f;等等诸如此类的问题。 但是&#xff0c;其实编程并没有大家想象中的那么难&#xff0c;编程要培养的也只是一项基础的思维逻辑。 编程所需要的很多能力和数学是相通的。…

为什么人人都学Python,讲清楚了,只要初中数学基础你就可以编程

Python越来越热&#xff0c;随着大数据和人工智能的兴起&#xff0c;Python将会继续热。 2022年7月&#xff0c;Python依旧占据Tiobe榜首位置&#xff0c;属实是“霸榜”编程语言。 不仅如此&#xff0c;Python在其他排行榜中&#xff0c;也是常年占据榜首或者前列位置&#…

编程用不到微积分,可我们为什么还要学数学?

数学对于一位程序员到底意味着什么呢&#xff1f; 先跟你分享一个关于 Google 面试题的故事&#xff1a; 2004 年的某天&#xff0c;硅谷的交通动脉 101 公路上突然出现了一块巨大的广告牌&#xff0c;上面是一道数学题&#xff1a;{e 的连续数字中最先出现的 10 位质数}.com。…

数学不好能学好编程吗?你来告诉你

诚然&#xff0c;编程离不开数学&#xff0c;或者可以说数学是任何科学的基础&#xff0c;但这不意味着在开始学习编程之前必须对数学很在行或者数学分数很高&#xff0c;那我们今天就来讨论下数学与编程的关系。 首先&#xff0c;如果想要能够进行基本的编程&#xff0c;哪些数…

分享:作为程序员,为什么你应该学好数学?

你好&#xff0c;我是黄申&#xff0c;目前在 LinkedIn 从事数据科学的工作&#xff0c;主要负责全球领英的搜索引擎优化&#xff0c;算法和数据架构的搭建。 2006 年&#xff0c;我博士毕业于上海交通大学计算机科学与工程专业&#xff0c;在接下来十余年时间里&#xff0c;我…

没有数学基础可以学编程吗?

一、为什么学编程 这里我并不是问大家&#xff0c;是因为兴趣啊还是就业学编程。 而是&#xff0c;我想要学Python为了量化交易&#xff0c;或者我要处理表格。我想要学Java我就想自己建站。是否有这种非常明确的目标&#xff0c;有目标才能明确学习路线。 如果在这里&#…

只有1%的人才知道的ChatGPT写作技巧

随意的提示只能产出糟糕的输出&#xff0c;要想让ChatGPT输出高质量内容&#xff0c;需要一些技巧。原文: Stop doing this on ChatGPT and get ahead of the 99% of its users[1] 如果你尝试过用ChatGPT写作&#xff0c;也许会对AI生成的内容感到沮丧&#xff0c;也许认为Chat…

边锋网络入选2019中国互联网企业100强榜单

【TechWeb】8月14日消息&#xff0c;中国互联网协会、工业和信息化部网络安全产业发展中心&#xff08;工业和信息化部信息中心&#xff09;今日发布了2019年中国互联网企业100强榜单&#xff0c;杭州边锋网络技术有限公司&#xff08;下文简称边锋网络&#xff09;入选。 边锋…

【关于2022年卡塔尔世界杯】

2022卡塔尔世界杯最全面的看点和分析,相信一定有你感兴趣的一点,相信一定会有你感兴趣的,推荐点赞收藏~~ 2022年世界杯比以往任何时候都晚,因为卡塔尔太热了…… 然而,四年一度的世界杯终于……来了 今年的世界杯,你最期待什么? 你认为谁会成为今年的冠军? 和小文一…

数据趣事:豪掷2200亿美元举办的世界杯有多精彩!世界杯趣事你知道哪些

2022卡塔尔世界杯正如火如荼的进行着&#xff0c;此次的卡塔尔世界杯也是中东和阿拉伯地区首次举办&#xff0c;为此卡塔尔更是豪掷2200亿美元&#xff0c;远超历届主办国。 本届世界杯共有32支来自不同国家的队伍&#xff0c;他们都有一个共同的奋斗目标——捧起大力神杯&…

中国20强(上市)游戏公司2022年财报分析:营收结构优化,市场竞争进入白热化

易观&#xff1a;受全球经济增速下行的消极影响&#xff0c;2022年国内外游戏市场规模普遍下滑。但中国游戏公司凭借处于全球领先水平的研发、发行和运营的能力与经验&#xff0c;继续加大海外市场布局&#xff0c;推动高质量发展迈上新台阶。 风险提示&#xff1a;本文内容仅代…