2009-11-12 4 views
1

iPhone SDK를 처음 사용합니다.tableView reloadData 후에도 UITableView 선택 사항이 강조 표시됩니다.

저는 UIScrollView와 UITableView를 가지고 있습니다. UITableView에는 4 개의 셀이 있습니다. 저는 페이지 매김에 UIPageControl을 사용합니다.

사용자가 선택하면 셀이 강조 표시되고 사용자가 다음 페이지로 스크롤하면 셀이 강조 표시된 상태로 유지됩니다.

나는 [tableView reloadData]를 시도하고 통화 후에도 내가 이해하지 못하는 UITableView에서 선택된 행을 볼 수 있었다.

UIScrollView를 다시 그려야합니까?

선택을 지우는 방법이 있습니까?

감사합니다, R

답변

0

당신이 jQuery과 스크롤하기 위해있는 UIScrollView 및/또는 UIPageControl을 사용하고 있습니까? UITableView는 스크롤을 위해 필요하지 않습니다.

설명에서 알 수 있듯이 셀을 올바르게 다시 사용하지 않는 것 같습니다.

일부 코드를 입력하면 더 많은 작업을 수행 할 수 있습니다. UITableView 서브 클래스 .m 파일을 보여 주어야 할 수도 있습니다.

+0

저는 UIScrollView와 UIPageControl을 사용하고 있습니다. 내 질문에 여러 페이지를 원하는 경우 각 페이지에있는 UITableView, 정말 UIScrollView 필요합니까? 방금 "PageControl"예제를 가져와 UITableView를 추가했습니다. –

+0

나는 이해한다고 생각한다. TableView의 형제 뷰를 표시하기 위해 PageControl에 의해 제어되는 페이지 인 ScrollView 내에 하나의 TableView가 있습니까? 이 TableView는 페이지를 방문 할 때마다 다른 데이터 집합으로 채워 집니까? 아니면 어떻게 든 다른 페이지에있는 TabelView의 4 행을 각각 표시하고 싶습니까? – mahboudz

+0

맞습니다. 예, 각 페이지마다 다른 데이터 세트가 표에 채워집니다. 이 데이터를 채우는 데 문제가 없으며 다른 데이터 집합을 얻습니다. 문제는 선택에 있습니다. 사용자가 셀을 선택하고 다음 페이지로 이동하면 이전 페이지에서 선택된 행이 선택된 상태로 유지됩니다. 이전 페이지의 선택을 프로그래밍 방식으로 선택 취소하는 방법도 선택 취소됩니다. 페이지가 선택을 기억하기를 원합니다. 협조 해 주셔서 감사합니다. -아르 자형 –

6

다른보기 내에 테이블보기를 포함하면이 동작이 발생합니다. 이 작업을 수행 할 경우 현재 선택 영역을 수동으로 지워야합니다. 다음을 호출하여이 작업을 수행 할 수 있습니다.

[tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:animated]; 

여기서 'animated'는 필요에 맞게 설정됩니다.

테이블 뷰를 직접 포함하는 경우 (다른 사람이 지적했듯이 테이블 뷰는 이미 자체적으로 모두 잘 스크롤되어 UIScrollView를 불필요하고 잘못된 형식으로 부팅 할 수 있음) 자동으로 작동합니다.