在滚动时向UITableViewCell添加自定义分隔符高度不起作用

时间:2017-05-05 16:36:25

标签: ios objective-c uitableview

我正在尝试将自定义单元格分隔符添加到表格的第一行(所有请求的曲面所在的位置)。然而,每当我滚动时,粗灰线也会出现在其他行中。我如何防止这种情况发生?

cellForRowAtIndexPath方法中,我有这个:

if (indexPath.row == 0 && [cell.dicInfo[AIRCRAFTSURFACE_SURFACE] isEqualToString:@"ALL REQUESTED SURFACES"]) {
            cell.lblSurface.font = [UIFont fontWithName:@"OpenSans-Bold" size:16.0f];
            CGRect sizeRect = [[UIScreen mainScreen] bounds];
            NSInteger separatorHeight = 10;
            additionalSeparator.frame = CGRectMake(0,cell.contentView.frame.size.height-separatorHeight,sizeRect.size.width,separatorHeight);
            additionalSeparator.backgroundColor = [UIColor lightGrayColor];
            [cell addSubview:additionalSeparator];
}

我在UIView *additionalSeparator;上初始化了viewDidLoad

可能是因为细胞被重复使用会导致某些事情发生吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

尝试添加else语句以删除其他行中的分隔符。

 - (void)viewDidLoad {
     UIView *additionalSeparator = [[UIView alloc] init....];
     additionalSeparator.tag = 9999;
     .
     .
  }

  - (UITableViewCell *)tableView:(UITableView *)_tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
     .
     .
     additionalSeparator.backgroundColor = [UIColor lightGrayColor];
     [cell addSubview:additionalSeparator];
  } else {
    [[cell viewWithTag:9999] removeFromSuperView];
  }