2010-05-20 4 views
2

사용자가 셀을 클릭 한 직후에 uitableviewcell의 사용자 정의 액세서리보기를 변경하려고합니다. 어떻게하면 좋을까요? 소스uitableviewcell에서 사용자 정의 액세서리보기 변경?

http://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html

다운로드 링크 : 공식적으로

, 나는 매트 갤러거 '사용자 정의 테이블보기 자습서를 사용하고 http://projectswithlove.com/projects/EasyCustomTable.zip


편집

이 코드를 시도 , 터치 업 후 액세서리를 변경합니다. 또한 같은 결과를 가진 willSelectRowAtIndexPath를 시도했습니다. 셀의 배경 화상을 해결

- (NSIndexPath *)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    UIImage *indicatorImage = [UIImage imageNamed:@"indicatorSelected.png"]; 
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; 
    cell.accessoryView = [[[UIImageView alloc] initWithImage:indicatorImage] autorelease]; 
    return indexPath; 
} 

EDIT

문제는 보조 장비를 포함한다.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    cell.accessoryView = newView; 
} 

을이 그냥 다음 선택한 현재 셀을 잡고 및 변경 : 그래서 액세서리는

답변

1

같이 당신은 선택 방법에 accessoryView을 바꿀 수는 이미지의 그것에게 부분을 만들어 '가짜'했다 그것의 액세서리보기. 뷰 객체는 newView가있는 곳으로 갈 것이다.

+0

없음 아주 나를 위해 작동하지 : – cannyboy

6

은 아마 당신은 willSelectRowAtIndexPath/didSelectRowAtIndexPath 셀을 다시 시도 할 수 있습니다 :

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    UIImage *indicatorImage = [UIImage imageNamed:@"indicatorSelected.png"]; 
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; 
    cell.accessoryView = [[[UIImageView alloc] initWithImage:indicatorImage] autorelease]; 
    [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil] withRowAnimation:NO]; 
} 

또 다른 추천 : didSelectRowAtIndexPath 반환 무효하지 NSIndexPath를.

UIImageView* arrowView = [[UIImageView alloc] initWithImage:normalImage]; 
arrowView.highlightedImage = selectedImage; 
cell.accessoryView = arrowView; 
[arrowView release]; 
+0

willSelectRowAtIndexPath는 void가 아닌 NSIndexPath *를 반환합니다. – oltman

+0

맞아. 'willSelectRowAtIndexPath' (편집 됨)에 대한 나의 실수였습니다. 그러나'didSelectRowAtIndexPath'는 void를 반환합니다. ** 당신은 단지 (** willSelectRowAtIndexPath')에 대한 잘못된 권고 때문에 ** ** 구현 된 예제에서 실수가 있었습니까 ** **? –

0

가있는 UIImageView의 highlightedImage 속성을 사용합니다. 업데이트 된 질문보기
관련 문제