iOS 类似扣扣微信中腾讯新闻的新闻列表实现
来源:互联网 发布:曲阜问政网络平台 编辑:程序博客网 时间:2024/05/16 00:26
由于项目近期添加新闻列表,就是类似扣扣和微信中的腾讯新闻的那种列表,所以就自己琢磨着实现了一下,
1、首先注意到,扣扣的新闻列表和普通的看起来并没有什么不同,但是在刷新数据的时候,细心的同学就会发现,它和普通的列表还是有区别的,比如界面一加载就滑动到最下面等等,下面来介绍一下我的列表制作。
2、对于把表格自动滑动到最后一行,这个实现起来比较简单(前提表格就是正常的添加,不做变换等操作),这个链接里就有讲到,http://blog.csdn.net/sw_gegewu/article/details/51886945。
3、还有一种方式,就是把表格进行变换。
(1)首先变换表格:
- (void)viewDidLoad { [super viewDidLoad]; self.tableView.transform = CGAffineTransformMake(1, 0, 0, -1, 0, 0);}
(2)把cell做同样的变换
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NewsCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId]; if (cell == nil) { cell = [[[NSBundle mainBundle] loadNibNamed:@"NewsCell" owner:nil options:nil] lastObject]; cell.transform = tableView.transform; } return cell;}
这样的话,tableview和cell就是同样的变换了,这里说明一下,如果cell不做变换,否则会看到,cell是反转的
(3)返回cell高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return 500; // 或者是自己计算的高度}
值得注意的是,变换之后的 tableview需要返回实际的高度,而不是系统自动布局的高度,否则界面会跳动,达不到效果,至于原因我也没找到,嘻嘻,
这样的话,运行程序,就会发现数据正常在底部展示了,
(4)加载新数据,扣扣的新闻是滑动到最上面加载数据(没有下拉刷新控件),所以我们也可以这样做,
实现UIScrollerViewDelegate的一个代理方法,
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ CGFloat allHeight = 0; for (NewsModel *news in self.newsData) { allHeight += news.cellHeight; } CGFloat contentOffset = scrollView.contentOffset.y+self.tableView.frame.size.height; if (contentOffset == allHeight) { [self getNewsList]; }}
请求的新数据拼接一下就可以了,这个要自己来做了。
这样的话,就可以判断当用户滑动到表格的最上面的时候就去加载新数据,或者在刚滑动的时候最判断加载数据也可以。这样就模仿了扣扣的腾讯新闻列表了。
0 0
- iOS 类似扣扣微信中腾讯新闻的新闻列表实现
- Android实现腾讯新闻的新闻类别导航效果
- Viewpager实现类似网易新闻的效果
- Android之类似网易新闻客户端首页新闻列表实现思路
- swift 新闻列表实现
- Python 实现腾讯新闻抓取
- Python 实现腾讯新闻抓取
- JS实现页面弹出类似QQ新闻的提示框
- JS实现页面弹出类似QQ新闻的提示框
- 类似zakerApp里横向显示新闻功能的实现
- 仿腾讯盖楼爬墙新闻评论的CSS实现
- 新闻列表
- iOS仿网易新闻、新浪新闻的新闻客户端
- 使用纯的javaScript制作右下角类似腾讯新闻弹出框效果
- iOS新闻客户端开发教程7-新闻列表
- 常用的新闻列表代码
- 简单的新闻列表页面
- ionic02-----列表新闻的获取
- ScrollView的使用
- 【最小圆覆盖】【未完待续。。】
- 高性能java实现不同服务器直接的数据库迁移。
- cocos2dx-lua_热更新_官方示例_AssetsManagerExTest
- J.U.C
- iOS 类似扣扣微信中腾讯新闻的新闻列表实现
- ImageLoader的简单分析
- Laravel 重写用户登录
- cocos2dx-3.10-lua_函数
- C语言实现二叉树的DFS
- linux下Tomcat6的自动重启及自动重启后的乱码问题
- Android配置ip地址
- Android源码笔记——Camera系统架构
- Android追加写入文件的几种方法