2011-01-26 7 views

Respuesta

4

Puede agregar un UIImageView que sea, por ejemplo, 1 punto alto y tan ancho como el marco de la celda, y luego establecer su origen en la esquina inferior izquierda de la celda.

+6

No se olvide de apagar el estilo separador predeterminado para la vista de tabla: '[auto.tableView setSeparatorStyle: UITableViewCellSeparatorStyleNone]; ' – Jasarien

+0

¿Puede darme un código aproximado para que pueda comenzar, cómo puedo establecer su origen en la esquina inferior izquierda de la celda? –

+1

tengo la solución, gracias a todos. –

84

Establezca separatorStyle de la tabla vista en UITableViewCellSeparatorStyleNone. Agregue su imagen de separador como subvista a cada celda y configure el marco correctamente.

+1

me darás un ejemplo. –

+0

[separaratorImageView setFrame: CGRectMake (0, 0, cell.frame.size.width, separatorImageView.image.size.height)]; – Felix

+0

[cell.imageView setFrame: CGRectMake (0, 0, cell.frame.size.width, cell.frame.size.height)]; no fue capaz de hacerlo :( – cV2

0

Tiene 2 opciones para cambiar el estilo de separación de una vista única si desea cambiar las opciones predeterminadas que no son separadores, línea continua o línea grabada.

  1. La forma más fácil consisten en la inclusión de una imagen de fondo línea de separación a cada vista de la célula. Puede verificar dónde está ubicada su celda en la vista de tabla para aplicar la imagen de fondo derecha que le dará ya sea una línea separadora en la parte superior de la celda o en la parte inferior de la celda .

    establecer el estilo de separador con ninguno en el viewDidLoad de su tableview:

    [self.tableView setSeparatorStyle: UITableViewCellSeparatorStyleNone];

    Indica tu imagen de fondo en el (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) Función indexPath

    UIImage* yourBgImg = [[UIImage imageNamed:@"bgImage.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5)]; 
    

    cell.backgroundView = [[UIImageView alloc ] initWithImage: yourBgImg];

    de verificación de la posición de la celda en la sección con la siguiente:

    NSInteger sectionRows = [tableView numberOfRowsInSection: [indexPathsection]]; Fila de NSInteger = [fila de indexPath];

  2. Agregue la línea de separación como una celda. Me parece un post reciente para este aquí: http://www.dimzzy.com/blog/2012/01/separator-cells-for-uitableview/#disqus_thread
4

Prueba esto:

UIImageView *separator = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"separator.png"]]; 
[cell.contentView addSubview: separator]; 

Eso es un ejemplo de cómo lo tengo que funciona bastante bien.

Recuerde establecer el estilo de separador para la vista de tabla en ninguno.

29

primer lugar se puede escribir el código:

{ [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];} 

después de eso

{ #define cellHeight 80 // You can change according to your req.<br> 
    #define cellWidth 320 // You can change according to your req.<br> 

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"seprater_line.png"]]; 
     imgView.frame = CGRectMake(0, cellHeight, cellWidth, 1); 
     [customCell.contentView addSubview:imgView]; 
     return customCell; 

    } 
} 
+3

El problema con soluciones como esta que solo agregue una subvista a la celda en 'tableView: cellForRowAtIndexPath:' es que agregarán una nueva cada vez que la celda se reutilice, sin eliminar las antiguas. Solo se debe agregar una vez, por lo que lo haría en una subclase 'UITableViewCell' – Gavin

51

Prueba este

Objetivo C

[TableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine]; 

    [TableView setSeparatorColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"[email protected]"]]]; 

Swift

tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine 
    tableView.separatorColor = UIColor(patternImage: UIImage(named: "YOUR_IMAGE_NAME")!) 
+1

Awesome answer ¡Gracias! – Septronic

+0

Gracias amigo ... ¡salud! – Sakshi

+0

Gracias @ Sakshi - Configuré el color del separador en lugar de una imagen y se ve muy bien también.' table.separatorStyle = UITableViewCellSeparatorStyle.SingleLine table.separatorColor = UIColor (rojo: 245/255, verde: 245/255, azul: 245/255, alfa: 1.0) ' –

7

Establecer el color del separador para ser modelado con su imagen.

en viewDidLoad:

self.tableView.separatorColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mySeparatorImage"]]; 
0

Aquí es una forma alternativa para agregar una línea de separación personalizada a un UITableView haciendo una CALayer para la imagen y el uso que a medida que la línea de separación.

// crea un CALayer para la imagen de la línea de separación

CALayer *separator = [CALayer layer]; 
separator.contents = (id)[UIImage imageNamed:@"myImage.png"].CGImage; 
separator.frame = CGRectMake(0, 54, self.view.frame.size.width, 2); 
[cell.layer addSublayer:separator]; 
5

Mi proyecto se basa en iOS 7 Esto me ayuda

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

continuación, poner una subvista en la celda como ¡separador!

+1

Eso no responde la pregunta. –

0

se puede tratar a continuación:

UIView *separator = [[UIView alloc] initWithFrame:CGRectMake(0, cell.contentView.frame.size.height - 1.0, cell.contentView.frame.size.width, 1)]; 
separator.backgroundColor = myColor; 
[cell.contentView addSubview:separator]; 

o

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"separator.png"]]; 
    imageView.frame = CGRectMake(0, 100, 320, 1); 
    [customCell.contentView addSubview:imageView]; 

    return customCell; 
} 
2

Esto es de gran ayuda. Trabajando. pero configure el separador "ninguno" del inspector de atributos. Escribir código siguiente en cellForRowAtIndexPath método

UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0,   
cell.contentView.frame.size.height - 1.0,  
cell.contentView.frame.size.width, 1)]; 

    lineView.backgroundColor = [UIColor blackColor]; 
    [cell.contentView addSubview:lineView]; 
+0

Intenté esto incluso con '[cell.contentView bringSubviewToFront: lineView];' y en su mayoría no se muestra, excepto en los lados derecho e izquierdo. –

1

Swift 3/4

personalizada línea de separación, poner este código en una celda personalizado que es una subclase de UITableViewCell (o en CellForRow o WillDisplay TableViewDelegates de celda personalizado no):

let separatorLine = UIImageView.init(frame: CGRect(x: 8, y: 64, width: cell.frame.width - 16, height: 2)) 
separatorLine.backgroundColor = .blue 
addSubview(separatorLine) 
1

forma más sencilla de agregar una línea de separación en cada célula tableview se puede hacer de t el guión gráfico en sí mismo. Primero seleccione la vista de tabla, luego en el inspector de atributos seleccione la propiedad de la línea de separación para que sea una sola línea. Después de esto, seleccione la inserción del separador para que sea personalizada y actualice la inserción izquierda para que sea 0 desde la izquierda.

Example