通常的 scrollView 用来进行轮播图的展示.网易新闻中标签对应的页面切换展示

举个栗子:

分析:

创建容器 reusedViewControllers 来存放可以重用的 视图

创建容器 visibleViewControllers 来存放屏幕中显示的 视图

scrollView 出现的时候,

首先需要在屏幕中显示一张完整的视图,此刻 做两件事

1.将视图 1 添加到 scrollView

2.将视图 1 添加到visibleViewControllers进行保存

一个视图->二个视图

如果向左滑动,会出现 两个视图 的情况, 视图2 也需要加入显示.当开始滑动的那一刻,做三件事情.

在 (存放重用的 VC )reusedViewControllers中查找可重用的 VC, 如果没有找到就创建一个,存在得到的就是视图2 .

2.将视图2 添加到(可见的)visibleViewControllers中进行保存,如果视图2 是在reusedViewControllers中找到的(不是创建的),那么需要将视图2从reusedViewControllers中移除,相当于将视图2从reusedViewControllers移动到了visibleViewControllers.

3.将视图2添加到 scrollView 中进行个性设置

二个视图-->一个视图

如果继续左滑动,直到视图1看不见的那一刻,也做三件事情

1.讲视图1从 scrollView 中移除removeFromSuperview

2.讲视图1放进reusedViewControllers 中 等待被重用

3.将视图1中visibleViewControllers中移除 ,因为它已经属于 reusedViewControllers中了

直接上代码:

4B4707C0-1374-4D23-A362-6E31BEC09D03.png

懒加载

BD20777D-54B8-41A2-8ABD-90045338FDC5.png

3C83B2C8-8480-422B-A749-86C996F36718.png

E6A43A6B-9FBD-4C3F-80FD-08FDA7B9478E.png

2679759D-AC44-4C41-8CC6-C29C26582E2C.png

263E9DA7-1597-4B4A-B23E-6BBEA3144267.png

2DE12586-F211-47D8-BE0D-1AB9CF201214.png

懒得敲代码了,直接截图了.凑合看吧...

2222.gif

然后我们看打印的信息:

6D7ACB64-8651-4F9A-BDE7-D9C2C962D485.png

从打印信息 可以看出来 ScrollView 中有两个子控件 (隐藏竖直,水平滚动条的情况下)

两个控件的内存地址都是重复 的

这个适用于 imageView / tableView/ controller

可以用作来轮播图,

代码下载

scrollview复用节点_ScrollView 两个控件复用, ScrollView 的极限优化相关推荐

  1. mfc在两个控件间连线

    新建一个对话框工程: 添加2个按钮,ID分别为IDC_ONE.IDC_TWO,再添加一个 GO!按钮: 为 GO!按钮添加单击消息处理函数: 单击代码: void CTwotwoDlg::OnButt ...

  2. Android两个控件叠在一起,如何让被挡住的控件显示出来

    Android两个控件叠在一起,如何让被挡住的控件显示出来 问题 : 两个控件叠在一起,如何让被挡住的控件显示出来? 比如A,B两个控件,A被B挡住,目前A要显示出来,B不能被隐藏,A的高度只有那么一 ...

  3. Android 解决下拉刷新控件和ScrollVIew的滑动冲突问题。

    最近项目要实现ScrollView中嵌套广告轮播图+RecyleView卡片布局,并且RecyleView按照header和内容的排列样式,因为RecyleView的可扩展性很强,所以我毫无疑问的选择 ...

  4. flutter如何让行Row的两个子控件分别左对齐和右对齐?

    实现行中两个控件分别左对齐和右对齐,方式有很多,示例代码如下: 方式一:使用spaceBetween对齐方式 new Row(mainAxisAlignment: MainAxisAlignment. ...

  5. MFC high-speed-charting控件使用(添加垂直游标,两个控件的联动)

    MFC high-speed-charting控件使用(添加垂直游标,两个控件的联动) 应用场景 最近参与的一个项目中涉及到在一个对话框中添加两个high-speed-charting控件,在两个控件 ...

  6. 树控件单击获取到的节点信息不是当前选中的节点_常用基本控件测试用例(一)...

    ​树控件的测试外观操作 1)项目中的所有树是否风格一致 2)树结构的默认状态是怎样的.比如默认树是否是展开,是展开几级? 是否有默认的焦点?默认值是什么?展开的节点图标和颜色? 3)验证点开节点时页面 ...

  7. 多功能节点连线绘图控件Nevron Diagram for .NET使用方法及下载地址

    Nevron Diagram for .NET是一个功能强大,世界上顶级的.NET图表控件.可扩展的图形报表构架,可以帮您创建功能丰富的Winforms及Webforms图表解决方案.这个产品构建于N ...

  8. elementui tree获取父节点_vue_elementUI_ tree树形控件 获取选中的父节点ID

    一,  vue_elementUI_ tree树形控件 1.1默认点击tree节点的第一个(注意不是checked选中) :expand-on-click-node="false" ...

  9. Android Studio两种控件布局

    1.线性布局LinearLayout 常用属性: android:id #设置名称 android:layout_width //设置宽度,一般可取值为"match_parent" ...

最新文章

  1. mysql 手工注入教程_mysql手工注入步骤
  2. python字典通过键值获取键名,通过value获取key
  3. 框架:Hibernate和Mybatis的区别
  4. 三星笔试能带计算机吗,2021年三星笔试试题+经验谈
  5. Python-OpenCV 笔记4 -- 形态学操作(Morphological Operations)
  6. 为了OFFER,我加深学习,搞懂了栈
  7. shell脚本实现无密码交互的SSH自动登陆
  8. OPPO全球营销总裁沈义人宣布卸任,网友:第二天宣布入职小米?
  9. RFID芯片有什么用
  10. mongodb 集群shard_MongoDB 分片集群环境搭建
  11. 硬盘分区变为RAW文件系统后的解决办法
  12. 判断浏览器是否最小化
  13. 2019年度优秀安全内容合集
  14. 《专业主义》阅读摘要——作者:大前研一
  15. JVM-三色标记算法
  16. DedeCMS 标签使用方法汇总!
  17. Transformer靠什么基因,得以闯入CV界秒杀CNN?
  18. Android TV系列 TV APP分析(一)
  19. latex教程——读书笔记整理(三)——数学公式
  20. pandas一列拆分成多行

热门文章

  1. 自然语言处理(NLP)之词义消歧(WSD)的简介与实现
  2. Matplotlib常见图形绘制(折线图、散点图、柱状图、直方图、饼图)
  3. Mongodb的的增删改查
  4. Selenium提取数据之标签对象提取文本内容和属性值
  5. 信息工程大学806自主命题2020年回忆版真题2020年信息工程大学,初试806回忆版
  6. 5 种将死的编程语言!
  7. 任务调度器leetcode621
  8. 科技发展给保险行业带来了什么改变?
  9. 使用maven profile 构建不同环境引用不同的值
  10. LVS Nginx HAProxy 优缺点