0

すべてのセルにカスタムセパレーターがあります(IBに追加されました)。特定の条件に基づいて削除/非表示にしたい:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    static NSString *CellIdentifier= @"satellite";
    SatellitesCell *cell= [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if(!cell) {
        cell =[[SatellitesCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

            }

     if([[arrayofRadios objectAtIndex:indexPath.row] isEqualToString:@""]){
         [cell.separatorImage removeFromSuperview];
         cell.separatorImage = nil;

         }

    cell.satelliteName.text=[arrayofSatellitesName objectAtIndex:indexPath.row];

    return cell;
}

ビューを起動するときは問題ありませんが、問題はスクロール時にセパレーター (UIImageView) がすべてのセルにランダムに表示されることです。

4

1 に答える 1

2

私の理解が正しければ、同じセル プロトタイプを使用したいが、データに基づいて外観を変えたいと考えています。この場合、separatorImage をスーパービューから削除せず、非表示にするだけです (例: cell.separatorImage.hidden = YES;)。このように、その if ステートメントの else ケースでは、それを再表示できます (例: cell.separatorImage.hidden = NO;)。

または、スーパービューから削除する特定の理由がある場合は、必ずその if ステートメントの else ステートメントを作成し、それをセルに追加し直してください (例: [cell addSubview:cell.separatorImage];)。

于 2013-06-22T21:02:40.730 に答える