UITableView 中的称重传感器
Posted
技术标签:
【中文标题】UITableView 中的称重传感器【英文标题】:Load cells in UITableView 【发布时间】:2015-02-01 12:39:18 【问题描述】:我有带有单元格的 UITableView,我为每个部分使用页脚(高度 = 10pt),为每个部分和单元格使用标题(高度 = 64pt)(高度 = self.view.frame.size.hight - 64 - 10
)。
TableView 仅在我启动应用程序时加载第一个单元格(因为第二个单元格在屏幕上不可见),但我想加载第一个和下一个单元格。当我滚动到第二行时,我想加载第三个单元格。
我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:UITableView
delegate methods 为您提供了几种方法来跟踪哪个单元格刚刚出现在屏幕上(即tableView:willDisplayCell:forRowAtIndexPath:
)。
一种方法是跟踪显示的单元格,并手动加载 +1 和/或 -1 索引。
注意:您不应该直接加载UITableViewCells
,而是应该加载它们应该显示的内容(根据 M.V.C)。
【讨论】:
【参考方案2】:你的懒加载套装,这意味着第一个可见,向下滚动时第二个项目应该准备好了。
//存储所有项目
NSArray *allItems = @[].mutableCopy;
//加载前两个并存入allItems
NSDate *first, *second;
allItems = @[first,second];
//向下滚动时检查哪个单元格可见,数据是否准备好
1) path.section 是可见单元格
NSIndexPath *path = [tableView indexPathForCell:aCell];
2) allItems count 是你加载的数据个数
allItems.count = path.section + 1;
3) 如果allItems.count == path.section
,则应该加载下一个数据,即当前可见数据的下一个。
通过这两个条件,数据应该一直准备就绪。
每次加载[tableView reload]
后显示。
【讨论】:
以上是关于UITableView 中的称重传感器的主要内容,如果未能解决你的问题,请参考以下文章
Objective-C / xib 的称重传感器 / 需要解释
水平 UITableView 中的垂直 UITableView
基于ESP8266 HX711 克级单位称重式压力传感器(接入阿里云物联网平台)—— 看到有点意思,所以我也照着做了一个