`

ios UITableView 的 UITableViewCell 的重用机制不对造成内容重复读取

阅读更多
NSString *reusedIdentifer = @"recipeDosageCell";
    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:reusedIdentifer];
    
    if (cell == nil) {
        cell = [[UITableViewCell alloc ] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reusedIdentifer];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }

 1.定义一个重用的cell,如果在外面给他的内容复制,当重复刷新就会重复显示cell的内容,之所以会造成这种结果,是在reloadData的时候,会重新调用cellForRowAtTableView ,然后找可以重用的cell,如果找到了就会用那个重用的cell,并且再次给他的内容赋值,结果就会造成重复显示。

 

解决方法,首先cell初始化时定义他的subview, 然后在外层给他的subview进行赋值。

 

2.如果一个tableview 中有多种cell ,则需要定义多个cell,然后进行重用

0
0
分享到:
评论

相关推荐

    IOS UITableView 的简单案例

    在iOS开发中,UITableView是一种非常重要的控件,用于展示列表数据。这个简单的案例将向我们展示如何使用UITableView来显示从plist文件中读取的数据,并且为每个单元格(Cell)设置点击事件。以下是对这个案例的详细...

    UITableView加载图片 官方范例

    6. **UITableViewCell的重用**:UITableView的一大特性是单元格重用,通过`dequeueReusableCell(withIdentifier:)`方法,我们可以复用已创建的单元格,减少新创建对象的开销。在加载图片时,要确保正确处理旧图片,...

    iOS开发中UITableview控件的基本使用及性能优化方法

    在iOS开发中,UITableView是应用最广泛的控件之一,它用于展示列表或表格形式的数据。在本教程中,我们将深入探讨如何使用Objective-C实现UITableView的基本功能,并探讨性能优化策略。 首先,我们来看一下如何创建...

    ios仿微博主界面

    在"ios仿微博主界面"项目中,自定义cell可能包含了头像、用户名、时间戳、文字内容、点赞/评论/转发等信息的展示,这需要通过重写UITableViewCell的init方法和layoutSubviews方法来实现,同时可能还需要添加手势识别...

    iOS淘宝商品详情控件

    确保 VoiceOver 可以正确读取内容,并提供合适的交互方式。 总结,开发iOS淘宝商品详情控件涉及到的知识点包括UIKit的使用、Auto Layout与Size Classes布局、网络请求与数据解析、图片加载优化、自定义Cell的重用...

    iOS开发 - 第02篇 - UI进阶 - 02 - TableView

    7. **优化性能**: 考虑使用UITableViewCell的重用机制以提高性能。通过复用已创建但不再显示的单元格,可以减少内存消耗和渲染时间。 8. **动画效果**: 可以添加一些动画效果,如行插入、删除和更新的过渡动画,以...

    通过实现TableView来理解IOS编程

    ### 通过实现TableView来理解iOS编程 #### 一、UIKit提供的基础 在深入了解UITableView之前,首先需要对UIKit有一个全面的认识,因为UITableView正是基于UIKit构建的一个重要组件。 ##### 1. UIKit概述 UIKit 是...

    天气预报Demo

    三、UItableViewcell重用 1. 自定义UITableViewCell:为了展示天气信息,开发者可能创建了一个自定义的UITableViewCell,包含城市名、温度、天气图标等元素。 2. 数据绑定:使用`dequeueReusableCell(withIdentifier...

    ios iphone异步加载图片EGOTableViewPullRefresh

    同时,库还提供了缓存机制,如果图片已经加载过,那么下次展示时可以直接从缓存中读取,进一步提高了效率。 EGOTableViewPullRefresh的实现主要分为以下几个步骤: 1. 初始化EGOImageView:在每个UITableViewCell中...

    ios-通过plist创建静态cell.zip

    在iOS开发中,为了构建用户界面,我们经常需要创建各种视图控制器,其中包括显示数据的表格视图(UITableView)。在本教程中,我们将探讨如何利用`plist`文件来创建静态单元格,以此实现一个简单的列表展示。这种...

    ocWeiBo_ocWeiBo_cell_

    6. **性能优化**:由于UITableView需要处理大量的cell复用,所以需要正确实现 `-tableView(_:willDisplayCell:forRowAt:)` 和 `-prepareForReuse` 方法,确保cell在显示和重用时能正确更新内容,防止内存泄漏和性能...

    swift-iOS通讯录联系人列表较完整(中文排序)

    在iOS应用开发中,Swift语言被广泛用于构建各种类型的应用,包括与系统功能深度集成的如通讯录管理类应用。本项目"swift-iOS通讯录联系人列表较完整(中文排序)"显然是一款专注于展示和管理用户设备通讯录的App,且...

    包括使用简单的tableview,自定义cell以及界面的跳转,本地存储

    在Swift编程语言中,`UITableView`是iOS应用开发中常用的一种UI组件,用于展示列表或者表格数据。本项目包含两个示例,旨在演示如何高效地使用`UITableView`,包括基本用法、自定义Cell以及页面跳转和本地存储的实现...

    移动软件开发-3期(KC015) 简答题.docx

    7. **UITableViewCell重用**:为提高性能,UITableView采用单元格重用,通过dequeueReusableCellWithIdentifier方法获取可复用的单元格,避免因大量创建新单元格导致的内存压力。 8. **分页模式**:分页模式用于...

    IOS实现简易版的QQ下拉列表

    在iOS开发中,实现一个简易版的QQ下拉列表功能,主要是通过UITableView控件来完成。这个过程涉及到多个步骤,包括模型类的建立、数据源的处理、自定义视图的创建以及UITableViewDelegate和UITableViewDataSource协议...

    iOS异步下载图片实例代码

    在iOS应用开发中,异步下载图片是一项基本且重要的任务,特别是在使用UITableView或UICollectionView时,因为这能够提高用户体验,避免因加载图片导致的界面卡顿。本实例代码着重讲解如何在不依赖第三方库的情况下...

    清单:使用表视图控制器的清单(类似于任务清单)

    使用`dequeueReusableCell(withIdentifier:)`获取可重用的Cell,并设置其内容。 ```swift func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = ...

Global site tag (gtag.js) - Google Analytics