2012-03-14 3 views
0

행의 textLabel이 검정색 막대 (예 : 검은 색 배경에 검은 색 막대)로 나타나는 것을 제외하면 일반 테이블보기가 올바르게 배치되었습니다. 해당 행을 선택하면 텍스트가 잘 보입니다. 그러나 다른 행을 선택하면 다시 사라집니다.UITableViewCell textLabel.text가 단일 행에 표시되지 않습니다.

검은 색으로 표시되는 행이 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 메서드에서 프로그래밍 방식으로 선택한 행이라는 것을 발견했습니다.

cell.selectionStyle = UITableViewCellSelectionStyleBlue; 

cell.textLabel.font = [UIFont systemFontOfSize:14]; 
cell.textLabel.text = @"some text"; 

if (self.selectedRow == indexPath.row) cell.selected = YES; 

내가 즉 selectionStyle 설정 가기 마지막 줄을 이동하기 전에 셀을 선택하여 문제를 해결 :

내 코드는 다음과 같은 것을 보았다.

나는 합리적인 설명이 틀림 없다고 생각하지만, 다른 누군가가 비슷한 것을 만날 경우에 대비해 기여할 것이라고 생각했습니다.

답변

1

첫 번째로 cellForRowAtIndexPath에서 선택 항목을 사용하여 놀아 보지 않으려면 셀의 "selected"속성을 수동으로 변경할 수 있습니다 (개발자 참조에서이 작업을 수행하는 것을 금지하지 않음).),보기가 나타난 직후에 셀을 선택해야하는 경우 [tableView reloadData] 호출 후이를 수행해야합니다.

둘째, 코드 단편의 마지막 줄을 삽입하면 셀이 선택된 것으로 표시되지 않고, 반면에 isSelected는 YES가됩니다.

마지막으로 ".text =" ".selected ="다음에 검은 검정색 인공물을 제거하는 것은 내가 믿는 선택 스타일과 아무런 관련이 없습니다. 그러나 셀이 선택된 상태로 표시되지 않습니다. 실제로는 잘못된 것입니다.

프로그래밍 방식으로 셀을 올바르게 선택할 수있는 방법에 대해 자세히 알려주십시오.

관련 문제