2016-05-13 48 views
0

我有一个表格视图,并在单元格中放置了指示喜欢count的文本标签。例如,当我加载应用程序时,喜欢count显示3.但是,当我向下滚动然后返回到顶部时,这3个将成为不同的数字。如何防止文本标签重复使用单元格?

我知道这是因为细胞重复使用。如何为每个单元格保存这些数字,而不是在滚动时更新它们?

图像I \ VE缓存与AlamofireImage,但我不知道该怎么做这些文本标签

+0

请发表相关的代码 – Shubhank

+0

您只需在'cellForRowAtIndexPath'中设置标签的值 - 单元格只是数据的一个视图,所以重用不应该是一个问题,但是,请将您的'cellForRowAtIndexPath'作为最小值 – Paulw11

回答

0

你缺少的部分是你需要使用行索引来索引到你的数据。显然,我们看不到你的代码,但它听起来像你没有使用这个。通常,您有一组数据,并在cellForRowAtIndexPath中使用索引查找正确的数据元素。

0
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { 

let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath:indexPath) as! MyCell 

cell.textLabel.text = "\(likesCount)" 

return cell 
} 
0

您的手机是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 
} 
0

你不阻止它重新定义方法(除非你想绝对会杀死你的应用程序的性能)。你拥抱它。

在cellForRowAtIndexPath中,您会得到一个之前用过的单元格。所以你改变了一切,你不想像未知的其他行一样。

1

在cellForRowAtIndexPath中,可以使用indexPath获取正确的值。 我看不到你的代码,所以如果你只是用了一些像1,2,3,4,等等,你可以做 例子: cell.label.text = indexPath.row + 1

,或者如果您使用的是数组,你可以这样做以下

cell.label.text = array[indexPath.row] 

希望这会有所帮助!

相关问题