2014-06-18 2 views
0

uitableviewcell을 선택하지 않고 특정 기간 동안 만 강조 표시하려면 어떻게합니까? 3 초 동안 강조 표시된 셀을 유지해야합니다. 그런 다음 셀이 강조 표시됩니다. 기본적으로 셀이 오디오와 동기화되는 북 타입 응용 프로그램을 개발 중입니다. 나는 텍스트로 tableviewcells를 채웠고, 또한 셀을 강조 표시하는 시간을 가지고있다.특정 시간 동안 tableviewcell 강조 표시

+1

셀을 강조 표시하는 방법을 알고 있습니까? 세포를 어떻게 밝히지 않는지 아십니까? NSTimer 사용법을 알고 있습니까? 당신이 시도하고 연구 한 것을 게시하십시오. – rmaddy

+0

셀을 일정 기간 동안 선택한 상태로 유지 한 다음 선택을 해제하십시오. 그게 어려워 진다면 언제든지 reloadTableview를 호출하여 cellforRowAtIndexPath에 부울을 추가하여 셀을 강조 표시해야하는지 아닌지를 결정할 수 있습니다. 그러나 전의 후자를 선호합니다. – Debanjan

+0

예. 타이머를 사용합니다. 하지만 하나의 셀을 선택해야할지 모르겠습니다. [셀 setHighlighted 사용 : 예 애니메이션 : 예]; WillDisplay 대리자 메서드에서 모든 셀을 강조 표시 할 수 있지만 개별 셀을 선택할 수 어떻게 마스터 - 자세히보기 컨트롤러를 사용하고 마음에 계속. 또한 데이터를 채우기 위해 셀 레이블을 선언하는 사용자 지정 셀을 만들었습니다. 고객 셀 클래스에서 타이머를 선언해야합니까? – Asif

답변

0

UITableViewCell의 강조 표시 상태를 설정하는 API는 setHighlighted:animated:이므로 간단한 강조 표시 만 필요하다고 가정하면 작업이 반으로 완료됩니다.

UITableViewDelegate 메서드 tableView:willDisplayCell:forRowAtIndexPath:을 사용하여 하위 클래스에서 정의한 몇 가지 방법으로 셀이 표시되었음을 알립니다. 이 방법을 사용하면 셀을 강조 표시 한 채로 셀을 강조 표시하고 타이머를 시작할 수 있습니다. 타이머가 시작되면 셀에서 강조 표시가 제거됩니다.

당신은 물론 셀보기 밖으로 스크롤, 그래서 난 당신이 사용자 정의있는 UITableViewCell 클래스를 만들해야한다고 생각 타이머를 무효화하고 prepareForReuse:

+0

내가 [cell setHighlighted : YES animated : YES]를 선언하면; willDisplayCell 델리게이트 메소드에서는 반드시 모든 셀을 강조 표시합니다. 하지만 내가 subclass에서 몇 가지 메소드를 선언하고 타이머를 사용하여이 메소드를 호출 할 수 있다고 언급 했으므로, 어떻게 개별 셀 매개 변수를 전달하여 해당 셀을 개별적으로 선택할 수 있는지 모르겠습니다. (나는 어리석은 질문을하면 나는 프로그래밍에 익숙하지 않아서 미안하다.) – Asif

+0

OK. 표시되는 모든 셀을 강조 표시하지 않으려는 경우 개별 셀에이 문제가 발생할 수 있습니다. cellForRowAtIndexPath :를 사용하여 강조 표시된 일부 indexPath에 해당하는 셀이 필요하다고 결정한 경우 개별 셀을 가져온 다음 해당 셀에 메시지를 보내 강조 표시/강조 표시를 발생시킵니다. cellForRowAtIndexPath : 사용할 테이블 뷰의 메소드가 될뿐만 아니라 사용할 수 있습니다. –

0

동안 하이라이트 상태를 다시 설정하면 타이머가 활성화 나머지 방지해야합니다. 셀을 초기화 할 때 특정 시간 간격으로 NSTimer를 사용하십시오. (NSTimer timerWithTimeInterval : NSTimeInterval) seconds 대상 : (id) 대상 선택기 : (SEL) aSelector userInfo : (id) 사용자 정의 메서드를 만들고이를 NSTimer 메서드 아래의 셀렉터 (사용자 정의 셀 클래스에서)로 전달 -

[NSTimer timerWithTimeInterval : userInfo 반복 : (BOOL) 반복]

선택기 메서드에서 tableViewCell 배경색을 강조 표시하도록 설정할 수 있습니다.