¿Cómo agregar un separador personalizado a UITableViewCell?

Por favor consérvelo en algún momento ya que esta es una explicación larga.

tengo unUIViewController que consiste en unUIButton y unUITableView que carga diferentes tipos deUITableViewCells con identificadorCell1 yCell2en eventotouchUpInside del botón. Estoy usando el guión gráfico.

El separador para ambas celdas es personalizado.

Cell1 tiene un separador que ocupa todo el ancho de la celda y la altura de 1 píxel en la parte inferior de la celda.

MientrasCell2 tiene un separador que tiene un desplazamiento de 5 píxeles desde la celda, tanto a la izquierda como a la derecha.

Cada vez que el botón fuera de latableView se hace clic en eltableViewCellSe intercambian s, en función del identificador de celda.

Inicialmente eltableView ocupa el ancho completo deviewController y consiste en Cell1, pero se pulsa el botón,tableViewCells se cambian a Cell2 y el marco de latableView se cambia, el ancho se reduce en 10 y el origen x se incrementa en 5.

Pero cuando esto sucede, el separador deCell2 está a 5 píxeles de la celda a la derecha pero a la izquierda está alejada por 5 píxeles. Esto sucede para todosCell2 que se carga con datos, y las celdas que no tienen datos, el marco se cambia de manera apropiada.

Pero la celda después de eso tiene el ancho deCell1 (ancho mayor)

-(void)setSeperatorStyleForTableView :(UITableViewCell *)cell //this is called in cellForRowAtIndex 
{
   //cell- type of cell(Cell1 or Cell2)

     CGRect seperatorFrame;
    UIImageView *seperatorImage;

    seperatorFrame = [self setSeperatorFrame:cell];

    if(firstCellToBeLoaded)//BOOL used to change the button text and load appropriate cells
    {
        seperatorImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"table_row         
                                                                            2.png"]];
    }
    else
    {

        seperatorImage = [[UIImageView alloc] initWithImage:[UIImage   
                                                  imageNamed:@"table_row.png"]];
    }
    seperatorImage.frame = seperatorFrame;
    seperatorImage.autoresizingMask = YES;
    [cell.contentView addSubview:seperatorImage];

}

//set the customized separator frame

-(CGRect)setSeperatorFrame :(UITableViewCell *)cell
{

    CGRect seperatorFrame;
    seperatorFrame.size.height = 1.0;
    seperatorFrame.origin.y = cell.frame.origin.y + (cell.frame.size.height - 1.0);

    if(firstCellToBeLoaded)
    {
        seperatorFrame.origin.x = cell.frame.origin.x ;
        seperatorFrame.size.width = cell.frame.size.width;
    }
    else
    {
        seperatorFrame.origin.x = cell.frame.origin.x + 5.0;
        seperatorFrame.size.width = cell.frame.size.width -10.0;

    }

    return seperatorFrame;
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta