2012-02-12 9 views
10

Tengo un UITableView que contiene x cantidad de celdas. Sin embargo, quiero tener una distancia de 20 px entre cada celda. Mi tabla de vista solo contiene una sección.Espacio entre las celdas de UITableView

He buscado en Google y buscado en el foro, pero no encontré nada que funcione para mi propósito.

¿Es posible establecer el desplazamiento del contenido en la celda, o la vista de la imagen dentro de la celda?

¿Alguien puede ayudarme?

+0

¿Las celdas están creadas por un archivo xib o en un código? – bneely

+0

customcell en el código – Magnus

+0

¿Cómo espera que se vea? ¿Cuántas celdas hay en promedio? – bneely

Respuesta

6

Según el seguimiento de los comentarios anteriores, parece que debe usar la propiedad UITViewView backgroundView para establecer su imagen de fondo personalizada, luego use una vista de tabla agrupada con una celda por sección. Para mí, esto suena como la forma más rápida y sencilla de implementar el tipo de IU que describes.

partes pertinentes de la documentación API UITableView:

@property(nonatomic, readwrite, retain) UIView *backgroundView 
... 
- (NSInteger)numberOfRowsInSection:(NSInteger)section 

y el protocolo UITableViewDataSource:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
+0

eso es lo que terminé haciendo. ¡Gracias hombre! – Magnus

+1

Creo que esta es una solución bastante mala si necesita presentar una sola matriz como una sola sección con su propio encabezado de sección, y otra matriz en otra sección con otro encabezado de sección. –

-3

En su UITableViewDelegate, anadir este método siguiente:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

Desde allí se puede controlar la altura total de cada célula de forma independiente. No haga esto para tablas grandes, sin embargo, ya que ralentiza las cosas.

+3

Ya lo intenté. Esto solo cambia la altura de cada celda, no la distancia entre las celdas. – Magnus

+0

Debe crear diseños de celdas que tengan el relleno y la apariencia que está buscando. – kamprath

+0

Este método es una práctica común para el problema que describió. Si ya lo intentó, debe mencionarlo en la pregunta original. – bneely

8

una solución alternativa de este problema es simplemente poner en práctica el método tableview: heightForFooterInSection como

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ 

    return 5; 
} 

Y luego implementar el tableView: ViewForFooterInSection como debajo de // Devuelve un pie de página transparente en realidad.

-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ 

    UIView *view = [[UIView alloc]init]; 
    [view setAlpha:0.0F]; 
    return view; 

} 
+0

Terminé usando esto con un pie de página transparente. - (UIView *) tableView: (UITableView *) tableView viewForFooterInSection: (NSInteger) sección { UIView * view = [[[UIView alloc] init] liberación automática]; [ver setAlpha: 0.0F]; vista de retorno; } – estobbart

+0

@estobbart Editado Gracias. –

+0

El único inconveniente de esto es que agrega espacio extra entre las secciones, y no entre las filas. Y si necesita agrupar filas en varias secciones, esta solución no funciona. – Zorayr

Cuestiones relacionadas