2011-06-25 9 views
6

En mi aplicación, estoy usando el estilo Agrupado para TableView. En eso quiero personalizar el estilo de selección de celda. Quiero que el Estilo de selección sea rojo.Problema al personalizar el estilo de selección de celdas en UITableView en iPhone

Estoy utilizando el código de abajo para que:

UIView *bgColorView = [[UIView alloc] init]; 
[bgColorView setBackgroundColor:[UIColor redColor]; 

[cell setSelectedBackgroundView:bgColorView]; 
[bgColorView release]; 

Al utilizar el código de seguridad. Tengo un problema. Como he tomado la tabla de estilos agrupados, en la selección de la primera y la última fila, la selección aparece con un rectángulo de bordes afilados en lugar de que aparece alrededor de las esquinas.

¿Alguien me puede ayudar en esto. Gracias de antemano.

Respuesta

3

Prueba de esto,

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

    static NSString *CellIdentifier = @"CellIdentifier"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 
     cell.selectedBackgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SelectedCellBackground.png"]] autorelease]; 
    } 

    // Cell configuration takes place here 
} 
-2
UIImageView *imageVieww=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, cell2.bounds.size.width, cell2.bounds.size.height)]; 


    imageVieww.image=[UIImage imageNamed:@"mavilik.png"]; 

    [cell2 setSelectedBackgroundView:imageVieww]; 

    [imageVieww release]; 
0

Anule -(void)setSelected:animated: en su subclase.

- (void)setSelected:(BOOL)selected animated:(BOOL)animated 
{ 
    if (selected) 
    [self setBackgroundColor:[UIColor redColor]]; 
    else 
    [self setBackgroundColor:[UIColor whiteColor]]; 
} 

Puede añadir animación de fantasía aquí para mezclar y fundir el fondo de la selección y deselección si animated es sí.

En general UITableViewCell puede ser un poco incómodo para la subclase, tenga paciencia aquí.

1

agregue el marco QuartzCore. e importar el framework QuartzCore/QuartzCore.h en el archivo .m. y luego agregue el siguiente código en el método cellForRowAtIndexPath.

UIImageView *imv = [[UIImageView alloc]init]; 
imv.backgroundColor=[UIColor redColor]; 
[cell setSelectedBackgroundView:imv]; 
CALayer *layer = imv.layer; 
[layer setMasksToBounds:YES]; 
[layer setCornerRadius:10.0]; 
[imv release]; 
Cuestiones relacionadas