【问题标题】:Table View Cell Does Not Reload When Scrolling滚动时表格视图单元格不重新加载
【发布时间】:2014-04-25 10:51:25
【问题描述】:

我有一个表格视图,其中设置了原型单元格,当视图第一次为我的标签加载正确的值时,每个单元格都正确填充了滑块。当我向下/向上滚动时,屏幕上看不见的单元格似乎没有重新加载。它们有一个空值。

我的数据源是一个可变数组(localArray)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    LocalTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

    cell.labelOutlet.text = [[localArray objectAtIndex:[indexPath row]] localChannel];
    cell.sliderOutlet.value = [[[localArray objectAtIndex:[indexPath row]] localPercentage] intValue];

    return cell;
}

记录

LOCAL CHANNEL: Webcast
LOCAL CHANNEL: The Stream
LOCAL CHANNEL: Email
LOCAL CHANNEL: Yammer
---Now scrolling
LOCAL CHANNEL: (null)
LOCAL CHANNEL: (null)
LOCAL CHANNEL: The Stream

【问题讨论】:

  • 在这个方法中放一条日志语句:NSLog(@""LOCAL CHANNEL: %@", [[localArray objectAtIndex:[indexPath row]] localChannel]);,看看它输出了什么。
  • 你做了什么调试?这个问题并没有真正包含足够的信息来帮助任何人
  • 向问题添加日志记录

标签: objective-c uitableview


【解决方案1】:

尝试更改您的代码,如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    LocalTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    if (cell == nil) {
      cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    }

    cell.labelOutlet.text = [[localArray objectAtIndex:[indexPath row]] localChannel];
    cell.sliderOutlet.value = [[[localArray objectAtIndex:[indexPath row]] localPercentage] intValue];

    return cell;
}

【讨论】:

  • 还是不行。这可能与我的自定义单元格有关吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-16
  • 1970-01-01
  • 1970-01-01
  • 2019-03-11
  • 1970-01-01
相关资源
最近更新 更多