2013-08-02 15 views
9

ho impostato:Impossibile modificare UITableView blu culminante colore

cell.selectionStyle = UITableViewCellSelectionStyleGray; 

e utilizzando questo codice per evidenziare una riga:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection: 0]; 
[self.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone 

Il colore di evidenziazione sempre blu anche io impostata su grigio. Se impostato:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

funziona correttamente e non evidenzia. Ma non funziona con:

cell.selectionStyle = UITableViewCellSelectionStyleGray; 

Mostra solo il colore blu invece del colore grigio. Qualche idea? Grazie.

+0

Si prega di inviare il codice che include i corpi dei metodi complete per dove stai impostando il colore di selezione ed eseguendo la selezione. –

+0

Non è un caso provarlo in iOS 7, vero? –

risposta

28

implementarlo come segue: - Impostare il colore

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

    [cell setSelectionStyle:UITableViewCellSelectionStyleGray];  
} 

O

s' il selectedBackgroundView come quello che si vuole in cella Tableview personalizzato (che è una sottoclasse di UITableViewCell):

UIView * selectedBackgroundView = [[UIView alloc] initWithFrame:self.frame]; 
[selectedBackgroundView setBackgroundColor:[UIColor redColor]]; // set color here 
[self setSelectedBackgroundView:selectedBackgroundView]; 

oppure è possibile configurarlo nel metodo -tableView:cellForRowAtIndexPath::

//... 
[cell setSelectedBackgroundView:selectedBackgroundView]; 
//... 
+0

Grazie. Ha funzionato. Io uso una cella personalizzata. Sembra setSelectionStyle: UITableViewCellSelectionStyleGray non funziona con la cella personalizzata. – user2543991

+6

Inoltre, non è necessario impostare il frame, quindi il modo più breve per impostare il colore di selezione sono queste due righe in 'tableView: cellForRowAtIndexPath:': 'cell.selectedBackgroundView = [[UIView alloc] init]; cell.selectedBackgroundView.backgroundColor = [UIColor redColor]; ' (aggiungi un'autorelease all'init se non stai utilizzando ARC). –

0

Assicurarsi di eseguire questo tipo di configurazione in InterfaceBuilder o nel metodo cellForRowAtIndexPath:.

+0

si. Ho fatto prima IB e non ho funzionato. Quindi, ho fatto in cellForRowAtIndexPath e ancora non ha funzionato. – user2543991

0

Effettuare una ricerca globale di "UITableViewCellSelectionStyleBlue" per assicurarsi di non aver commesso errori di battitura.

4

Basta aggiungere questo nel metodo il suo lavoro per me

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
.... 
UIView *bgColorView = [[UIView alloc] init]; 
bgColorView.backgroundColor = [UIColor colorWithRed:(76.0/255.0) green:(161.0/255.0) blue:(255.0/255.0) alpha:1.0]; // perfect color suggested by @mohamadHafez 
bgColorView.layer.masksToBounds = YES; 
cell.selectedBackgroundView = bgColorView; 
.... 
return cell; 
} 

se avete qualche domanda non esitate a chiedere

Problemi correlati