2011-06-25 3 views
6

W mojej aplikacji używam stylu zgrupowanego w TableView. W tym chcę dostosować styl zaznaczenia komórki. Chcę, aby styl zaznaczenia był czerwony.Problem w dostosowywaniu zaznaczenia komórki Styl w widoku UITableView w telefonie iPhone

Używam poniższy kod na to:

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

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

Stosując powyższy kod. Mam problem. Od kiedy wziąłem zgrupowany styl tabeli, w wyborze pierwszego i ostatniego wiersza, wybór pojawia się z ostrym prostokątem zamiast z pojawiającymi się zaokrąglonymi narożnikami.

Czy ktoś mi w tym pomoże? Dzięki z góry.

Odpowiedz

3

Spróbuj tego,

- (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

Zastąp -(void)setSelected:animated: w swojej podklasy.

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

Możesz dodać fantazyjne animacji tutaj mieszają się i zanikanie tła przy wyborze i odwołaniu jeśli animated brzmi TAK.

Ogólnie rzecz biorąc UITableViewCell może być nieco niezręczny dla podklasy, bądź cierpliwy.

1

dodać strukturę QuartzCore. i importować strukturę QuartzCore/QuartzCore.h do pliku .m. a następnie dodać następujący kod w metodzie 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];