苹果开发中segment control控制table view切换

方案一:

一个tableview,三个数据数组(一个最新,一个最热,一个指针引用),然后用segment切换来控制tableview的加载数据,切换时用reloaddata重新加载需要显示的数据。需要说明tableview加了下拉刷新的功能。
实现:功能已实现。

问题:

切换时重新加载内容,徒增性能损耗;

    因为cell中有作者头像,是从互联网上加载的,因此每次重新加载tableview时都重新下载一遍头像,这对流量无端的损耗是不可饶恕的,是注定要被用户抛弃的。即使使用了异步加载,图像缓存技术,但是这个隐患还是很大。

    滚动位置在切换时丢失,这个丢失是对用户体验而言的。实际是两个数据源大小不同,tableview的显示位置固定,影响用户体验。

    下拉刷新完成后也会重新加载内容,如果刷新中切换页面,可能导致刷新内容丢失,或者刷新提示混乱。
    试图解决方案:在界面上创建两个tableview实例,因为两个列表内容格式和显示样式完全一致,因此复用默认的tableview,最恰当。因此我就希望用深度复制的办法创建一个新的实例,这样两个tableview互不影响,又达到复用的目的,但是遗憾的是复制实例,报错,貌似不支持。

方案二:

顺着方案一的思路,在界面上方两个tableview,为了复用性,我们在storyboard上的view上拖一个tableview,绑定自定义的blogtableview类。界面会自动创建一个tableview,我们在界面初始化函数中再创建一个blogtableview实例,因为这个类绑定了界面,因此实例后就能复用了界面上的格式和布局了(我是这么认为的,刚好用这个方案验证类和界面绑定的关系),我们把刷新函数和数据源,代理函数全放在自定义类中,彻底分离两个列表实例。主界面类只负责tableview实例创建和界面切面的工作。这样原来一个类实现的功能就要放到一个控制类一个业务类中了,其实我觉得这个分离是合理优化。
实现:等下了火车验证。
方案三:

在界面上拖两个tableview,格式和布局完全一样,这种方案我是接受不了的。

时间: 2024-09-04 08:27:44

苹果开发中segment control控制table view切换的相关文章

android-listview 中item怎么控制子view的点击事件

问题描述 listview 中item怎么控制子view的点击事件 怎么让点击c那一行时没响应,应该怎样处理touch事件 解决方案 有借口,复写就好了,不过要注意焦点问题.那才是烦人的 解决方案二: 解决方案三: 判断处理就行了... 解决方案四: 可以根据内容来判断一下试试. 解决方案五: 这个不是expandedlistvie吗? 解决方案六: BaseAdapter 里面有下标参数 postion 解决方案七: 有个监听,重写下就好了.position用来控制点的是那个item.

比较IOS开发中常用视图的四种切换方式_IOS

在iOS开发中,比较常用的切换视图的方式主要有以下几种: 1. push.pop 使用举例(ViewController假设为需要跳转的控制器): [self.navigationController pushViewController:ViewController animated:YES]; //入栈,跳转到指定控制器视图 [self.navigationController popViewControllerAnimated:YES]; //弹栈,返回到前一个视图 [self.navig

Android应用开发中控制反转IoC设计模式使用教程_Android

1.概述首先我们来吹吹牛,什么叫IoC,控制反转(Inversion of Control,英文缩写为IoC),什么意思呢? 就是你一个类里面需要用到很多个成员变量,传统的写法,你要用这些成员变量,那么你就new 出来用呗~~ IoC的原则是:NO,我们不要new,这样耦合度太高:你配置个xml文件,里面标明哪个类,里面用了哪些成员变量,等待加载这个类的时候,我帮你注入(new)进去: 这样做有什么好处呢?  回答这个问题,刚好可以回答另一个问题,很多人问,项目分层开发是吧,分为控制层.业务层.

Android应用开发中控制反转IoC设计模式使用教程

1.概述 首先我们来吹吹牛,什么叫IoC,控制反转(Inversion of Control,英文缩写为IoC),什么意思呢? 就是你一个类里面需要用到很多个成员变量,传统的写法,你要用这些成员变量,那么你就new 出来用呗~~ IoC的原则是:NO,我们不要new,这样耦合度太高:你配置个xml文件,里面标明哪个类,里面用了哪些成员变量,等待加载这个类的时候,我帮你注入(new)进去: 这样做有什么好处呢?  回答这个问题,刚好可以回答另一个问题,很多人问,项目分层开发是吧,分为控制层.业务层

全面理解iOS开发中的Scroll View[转]

from:http://mobile.51cto.com/hot-430409.htm   可能你很难相信,UIScrollView和一个标准的UIView差异并不大,scroll view确实会多一些方法,但这些方法只是UIView一些属性的表面而已.因此,要想弄懂UIScrollView是怎么工作之前,你需要了解 UIView,特别是视图渲染过程的两步. AD:   可能你很难相信,UIScrollView和一个标准的UIView差异并不大,scroll view确实会多一些方法,但这些方法

iOS开发中Quartz2D控制圆形缩放和实现刷帧效果_IOS

Quartz2D简要回顾一.什么是Quartz2D  Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统  Quartz 2D能完成的工作:   绘制图形 : 线条\三角形\矩形\圆\弧等   绘制文字   绘制\生成图片(图像)   读取\生成PDF   截图\裁剪图片   自定义UI控件 二.Quartz2D在iOS开发中的价值 为了便于搭建美观的UI界面,iOS提供了UIKit框架,⾥⾯有各种各样的UI控件 UILabel:显⽰文字 UIImageView:显示图片 UIBu

java-android开发中怎么控制赞过后不让他多次点赞啊

问题描述 android开发中怎么控制赞过后不让他多次点赞啊 大家好,APP中点赞功能,若用户没有登录,只是在浏览,如果反复点击赞,怎么控制赞过后不让他多次点赞啊 解决方案 当然可以当时设置按钮为不可用或不可见再有,最好是在后台记录,这个人对这个帖子已经点赞过了,然后做相应处理 解决方案二: 这个与后台服务有关,将赞过的记录下来,第二次就不允许点赞即可服务器里面规定一个IP地址每天每个项目只允许点一个赞 解决方案三: 控制点赞的按钮enable啊. 解决方案四: 点赞后,记录下点赞过的项目,把项

html-Web开发中局部刷新url地址如何改变,浏览器刷新之后页面跳转控制

问题描述 Web开发中局部刷新url地址如何改变,浏览器刷新之后页面跳转控制

Web开发中局部刷新url地址如何改变,浏览器刷新之后页面跳转控制

问题描述 Web开发中局部刷新url地址如何改变,浏览器刷新之后页面跳转控制 如图,我想讲页面做成1,2,3块用div控制,当点击1处的DIV中树枝时同时改变div3的HTML和DIV2 的A处的说明,同时当前sub-bar保持展开状态,当点击浏览器的刷新按钮时控制页面的刷新还展示之前的状态,而不是跳转到初始化界面,该如何做?????请各路大神帮忙,谢谢!!!