美文网首页iOS-swiftiOS移动开发swift
5.IOS(swift)-scrollView ·重用

5.IOS(swift)-scrollView ·重用

作者: 俊瑶先森 | 来源:发表于2015-05-27 21:53 被阅读391次

大部分的 iOS 开发应该都清楚 UITableView 的 cell 重用机制,这种重用机制减少了内存开销也提高了 performance,UIScrollView 作为 UITableView 的父类,在很多场景中也很适合应用重用机制(其实不只是 UIScrollView,任何场景中会反复出现的元素都应该适当地引入重用机制)。

你可以参照 UITableView 的 cell 重用机制,总结重用机制如下:

<li>维护一个重用队列
<li>当元素离开可见范围时,removeFromSuperview 并加入重用队列(enqueue)
<li>当需要加入新的元素时,先尝试从重用队列获取可重用元素(dequeue)并且从重用队列移除
<li>如果队列为空,新建元素
<li>这些一般都在 scrollViewDidScroll: 方法中完成

实际使用中,需要注意的点是:

<li>当重用对象为 view controller 时,记得 addChildeViewController
<li>当 view 或 view controller 被重用但其对应 model 发生变化的时候,需要及时清理重用前留下的内容
<li>数据可以适当做缓存,在重用的时候尝试从缓存中读取数据甚至之前的状态(如 table view 的 contentOffset),以得到更好的用户体验
<li>当 on screen 的元素数量可确定的时候,有时候可以提前 init 这些元素,不会在 scroll 过程中遇到因为 init 开销带来的卡顿(尤其是以 view controller 为重用对象的时候)

Paste_Image.png

相关文章

  • 5.IOS(swift)-scrollView ·重用

    大部分的 iOS 开发应该都清楚 UITableView 的 cell 重用机制,这种重用机制减少了内存开销也提高...

  • Swift UIScrollView基础写法

    // ViewController.swift// ScrollView // Created byABC ...

  • LazyScrollView 简单看

    LazyScrollView 是一个高性能的 scrollView 重用布局框架, 实现了视图的重用和自动加载, ...

  • iOS ScrollView 的重用

    支持的功能: 无限轮播 定时器轮播 重用 原理:利用3(0 1 2)个视图不断的切换,滑动结束的时候始终让1显示在...

  • react-native-tableview 使用

    众所周知,react-native 的 ListView 是使用 ScrollView 封装的,是完全没有重用机制...

  • Swift ScrollView缩放

    具体可看苹果官方文档

  • Swift-泛型笔记

    Swift 泛型 Swift 提供了泛型让你写出灵活且可重用的函数和类型。 Swift 标准库是通过泛型代码构建出...

  • 泛型

    Swift 提供了泛型让你写出灵活且可重用的函数和类型。Swift 标准库是通过泛型代码构建出来的。Swift 的...

  • Swift 泛型

    Swift 提供了泛型让你写出灵活且可重用的函数和类型。Swift 标准库是通过泛型代码构建出来的。Swift 的...

  • Swift 泛型

    Swift 提供了泛型让你写出灵活且可重用的函数和类型。Swift 标准库是通过泛型代码构建出来的。Swift 的...

网友评论

    本文标题:5.IOS(swift)-scrollView ·重用

    本文链接:https://www.haomeiwen.com/subject/bmmrqttx.html