我有一个表格视图,并在单元格中放置了指示喜欢count的文本标签。例如,当我加载应用程序时,喜欢count显示3.但是,当我向下滚动然后返回到顶部时,这3个将成为不同的数字。如何防止文本标签重复使用单元格?
我知道这是因为细胞重复使用。如何为每个单元格保存这些数字,而不是在滚动时更新它们?
图像I \ VE缓存与AlamofireImage,但我不知道该怎么做这些文本标签
我有一个表格视图,并在单元格中放置了指示喜欢count的文本标签。例如,当我加载应用程序时,喜欢count显示3.但是,当我向下滚动然后返回到顶部时,这3个将成为不同的数字。如何防止文本标签重复使用单元格?
我知道这是因为细胞重复使用。如何为每个单元格保存这些数字,而不是在滚动时更新它们?
图像I \ VE缓存与AlamofireImage,但我不知道该怎么做这些文本标签
你缺少的部分是你需要使用行索引来索引到你的数据。显然,我们看不到你的代码,但它听起来像你没有使用这个。通常,您有一组数据,并在cellForRowAtIndexPath中使用索引查找正确的数据元素。
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath:indexPath) as! MyCell
cell.textLabel.text = "\(likesCount)"
return cell
}
您的手机是UITableViewCell的子类吗?
通过IB给你的一个标识符(再利用标识符),然后
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
MyTableViewCellSubclass *cell = [tableView dequeueReusableCellWithIdentifier:@"your_identifier"];
// .. your code
}
而在子类
- (void)prepareForReuse
{
self.yourCountLabel.text = @"0"; // "reset" value
}
你不阻止它重新定义方法(除非你想绝对会杀死你的应用程序的性能)。你拥抱它。
在cellForRowAtIndexPath中,您会得到一个之前用过的单元格。所以你改变了一切,你不想像未知的其他行一样。
在cellForRowAtIndexPath中,可以使用indexPath获取正确的值。 我看不到你的代码,所以如果你只是用了一些像1,2,3,4,等等,你可以做 例子: cell.label.text = indexPath.row + 1
,或者如果您使用的是数组,你可以这样做以下
cell.label.text = array[indexPath.row]
希望这会有所帮助!
请发表相关的代码 – Shubhank
您只需在'cellForRowAtIndexPath'中设置标签的值 - 单元格只是数据的一个视图,所以重用不应该是一个问题,但是,请将您的'cellForRowAtIndexPath'作为最小值 – Paulw11