2013-08-02 11 views
9

değiştirilemiyorbelirlediğim UITableView mavi vurgu rengini

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

vurgu rengi her zaman mavi hatta griye ayarlayın. Ayarladığımda, iyi çalışıyor ve vurgulama yapmıyorsa,

. Ancak, aşağıdakilerle çalışmaz:
cell.selectionStyle = UITableViewCellSelectionStyleGray; 

Sadece gri renk yerine mavi rengi gösterir. Herhangi bir fikir? Teşekkürler.

+0

için tam yöntem organları içeren kod gönderilmesi için lütfen sormaya çekinmeyin varsa seçim rengini ayarlayıp seçimi yaptığınız yer. –

+0

Bunu iOS 7'de denemek şans eseri değil, değil mi? –

cevap

28

it Uygulanışı: - Eğer (UITableViewCell alt sınıfı olan) özel tableview hücrede istediğini olarak

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

    [cell setSelectionStyle:UITableViewCellSelectionStyleGray];  
} 

VEYA

Set selectedBackgroundView 'ın rengini:

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

veya bunu -tableView:cellForRowAtIndexPath: olarak yapılandırabilirsiniz:

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

Teşekkürler. İşe yaradı. Özel bir hücre kullanıyorum. SetSelectionStyle gibi görün: UITableViewCellSelectionStyleGray özel hücre ile çalışmaz. – user2543991

+6

Ayrıca, çerçeveyi ayarlamanıza gerek yoktur, bu nedenle seçim rengini ayarlamanın en kısa yolu bu iki satırdır: tableView: cellForRowAtIndexPath: ': ' cell.selectedBackgroundView = [[UIView alloc] init]; cell.selectedBackgroundView.backgroundColor = [UIColor redColor]; ' (ARC kullanmıyorsanız, init için bir otomatik ekleme ekleyin.) –

0

Bu tür bir yapılandırmayı, InterfaceBuilder'da veya cellForRowAtIndexPath: yönteminde yaptığınızdan emin olun. aşağıdaki gibi

+0

evet. İlk kez IB'de yaptım ve işe yaramadı. Sonra, cellForRowAtIndexPath yaptım ve hala işe yaramadı. – user2543991

0

Yazım hatası yapmadığınızdan emin olmak için "UITableViewCellSelectionStyleBlue" global araması yapın.

4

Sadece için yönteminde çalışmalarını bu add 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; 
} 

Herhangi bir sorunuz