2013-06-20 207 views
13

我正在爲我的tableview使用自定義表格視圖單元格。爲了設置邊框,我將視圖放在了自定義單元格上,並且正在更改其邊框屬性。更改所選UITableViewCell的邊框顏色

self.borderView.layer.borderColor = VIEW_BORDER_COLOR; 

我想通過改變邊框的顏色來突出顯示所選單元格。我試圖改變它在did電子郵件的索引路徑,

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

但隨着單元格被重新使用它在滾動上發生變化。

+0

你正在做的多個選擇或單個選擇... –

+0

[細胞setShowsTouchWhenHighlighted:YES];嘗試這一個... – Jitendra

回答

19

您可以使用

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

希望它可以幫助你。

4

將必須標記/取消標記(假設ü只需要一次一個選擇)邊框顏色連連喜歡 -

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

只需保存/緩存選擇指數喜歡 -

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

很高興,如果它的工作..可以考慮接受正確的答案:) –

+0

我真的希望我能...沒有聲譽尚未:( –

+0

borderView不是一個有效的屬性UITableViewCell – Necreaux

31

使用:

夫特2

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

夫特3

cell.layer.borderWidth = 2.0 
cell.layer.borderColor = UIColor.gray.cgColor