2013-06-20 24 views
13

Tablo görünümü için özel bir tablo görünümü hücresi kullanıyorum. Sınırı ayarlamak için, özel hücreye bir görünüm koydum ve kenarlık özelliklerini değiştiriyorum.Seçimde UITableViewCell kenarlık rengini değiştir

self.borderView.layer.borderColor = VIEW_BORDER_COLOR; 

Kenarlık rengini değiştirerek seçili hücreyi vurgulamak istiyorum. Ben, didselectrowforindexpath içinde değiştirmeye çalıştım

cell.borderView.layer.borderColor = [UIColor yellowColor].CGColor; 

ama hücreler yeniden kullanılır gibi kaydırmayı değiştirir

.

+0

... –

+0

[hücre setShowsTouchWhenHighlighted: EVET]; Bu bir deneyin ... – Jitendra

cevap

19

Sen

[cell.contentView.layer setBorderColor:[UIColor blackColor].CGColor]; 
[cell.contentView.layer setBorderWidth:2.0f]; 

size yardımcı Umut kullanabilirsiniz.

4

tekrar sınır rengi ve yine

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    if(indexPath.row==self.selectedRow){ 
cell.borderView.layer.borderColor = [UIColor yellowColor].CGColor; 
}else { 
cell.borderView.layer.borderColor = [UIColor clearColor].CGColor; 
} 
} 

Sadece

gibi- önbelleğe/seçili dizini kurtarmak gibi- (u bir defada sadece seçilmiş bir gerek varsayarak)/un işareti işaretlemek gerekecek
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 

//Unselected the prevoius selected Cell 
      YourCellClass *aPreviousSelectedCell= (YourCellClass*)[tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:self.selectedRow inSection:0]]; 
      aPreviousSelectedCell.borderView.layer.borderColor = [UIColor clearColor].CGColor; 

//Selected the new one-  
      YourCellClass *aSelectedCell = (YourCellClass*)[tableView cellForRowAtIndexPath:indexPath]; 

    aSelectedCell.borderView.layer.borderColor = [UIColor yellowColor].CGColor; 

      self.selectedRow = indexPath.row; 
     } 
+0

Eğer işe yaradıysa sevindim .. doğru cevabı kabul etmeyi düşünebilirim :) –

+0

gerçekten yapabilmeyi dilerim ... henüz bir itibar yok :( –

+0

borderView, UITableViewCell için geçerli bir özellik değil – Necreaux

31

kullanma:

Swift 2:

cell.layer.borderWidth = 2.0 
cell.layer.borderColor = UIColor.grayColor().CGColor 

Swift 3

Birden seçimi veya tek bir seçim yapıyoruz
cell.layer.borderWidth = 2.0 
cell.layer.borderColor = UIColor.gray.cgColor 
İlgili konular