2011-02-23 3 views
0

selected 일 때 5 개의 버튼이있는 새로운보기를 셀에 추가하려고합니다. 나는 이것을 3 가지 다른 방법으로 시도하고있다. 첫 번째는 내부에서 선택되었는지를 확인하는 것입니다.선택하면 UITableViewCell의 contentView에보기를 추가합니다.

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

방법입니다.

if (cell == nil) { 
//initial customizaton of cells 
} else { 
    if ([cell isSelected]) { 
    //I would add the view to the cell's contentView here but it never enters this if even though the cell is still blue, I scrolled the table back and forth several times and the blue cell never evaluated here 

    } 
} 
나는 또한 다음 두 가지 방법 안에 그것을 위해 노력했다

:

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath 

그리고 :

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
나는 셀에 대한 참조를 얻을 수 tableView:cellForRowAtIndexPath:을 사용

때 내가 가진 그 참조 셀의 contentView 내부에 뷰를 추가하려고했지만 작동하지 않는 것 같습니다 ("작동하지 않았다"는 것은 표시되지 않았 음을 의미하므로 더 자세히 디버깅 할 것입니다).

나는 많은 상세한 코드를 제공하지 않았지만, 나는 그것이 어떻게 행해져 야 하는가에 대한 일반적인 원리가 무엇인지를 주로 알고 있기 때문에 그 것이다. 나는 그 셀이 왜 과 같은 selected 속성을 가지고 머물러 있지 않은지 알고 싶다. 나는 그것을 누를 때 푸른 색을 유지한다. (selectionStyle이 기본 셀일 때). 내가 그것을 선택 해제하고 그 견해를 제거 할 때까지 그 안에 그보기가있는 "푸른 색"(선택된) 상태로 유지되기를 원합니다.

답변

2

UITableViewCell 맞춤 설정을 시도하셨습니까? 그게 포인트라고 생각하면 거기에 setSelected: 메서드를 오버로드 할 수 있습니다.

+0

저는 서브 클래 싱을 피하려고 노력했지만 다른 방법을 찾을 수 없다면 확실히 할 것입니다. 감사합니다. –

0

나는 NR4TR의 조언을 따라 왔으며 지금까지 그렇게 잘했다. 나는 UITableViewCell을 서브 클래 싱하고 그것에 setSelected 메소드를 오버라이드했다.

희망하는 사람은 장래에 다른 사람에게 유용합니다.

관련 문제