2013-10-15 4 views
0

사용자가 textFieldShouldReturn 메서드를 호출 할 때마다 새 테이블 셀을 만듭니다. 모든 셀에 다른 타이머가 있으므로 모든 셀에 자막으로 타이머를 추가하고 싶습니다. 그리고 타이머가 끝나면 셀을 파괴해야합니다.UITableView 셀의 타이머

여기 길 찾기 만하고 있습니다. 어떻게해야할까요?

+4

셀은 데이터, 타이머 등을 저장할 수있는 뷰가 아니므로 모델에 있어야 모델이보기에 테이블보기 셀을 피드해야합니다. – rckoenes

+0

레이블에 타이머를 표시 할 수 있으며 매 초마다 표를 다시로드해야합니다. –

+0

"해당 셀에 타이머를 부제목으로 추가"란 의미를 명확히하십시오. 그들이 스스로를 파괴하기 전에 남은 시간을 보여주고 싶습니까? – RyanR

답변

0

간단한 방법은 CountDown 클래스와 CountDownDelegate 프로토콜을 만드는 것입니다. 카운트 다운이 0 countDownDidReachesZero:(CountDown *)countDown

그런 다음의 UIViewController (또는있는 UITableViewController) 배열의 카운트 다운의 목록을 유지 도달하고 준수 할 때

카운트 다운 클래스는 타이머를 처리하고 대리자의 메소드를 호출하는 반응 할 것이다 CountDownDelegate.

- (void)countDownDidReachesZero:(CountDown *)countDown 
{ 
NSMutableArray *array = [self.countdowns mutableCopy]; 
[array removeObject:countDown]; 
self.countdowns = array; //if property is set with copy flag 
[self.tableView reloadData]; // get index and remove cell with effect would be better 
} 

- (BOOL)textFieldShouldReturn:(UITextField*)textField 
{ 
NSMutableArray *array = [self.countdowns mutableCopy]; 
[array addObject:[[CountDown alloc] init]]; 
self.countdowns = array; 
[self.tableView reloadData]; //or add the cell with effect 
return YES; 
} 

detailLabel.text를 업데이트하려면 CountDownDelegate 프로토콜을 사용하십시오. 좋은 일은 모든 countDown을 업데이트하는 정적 NSTimer를 하나만 가지는 것입니다.

관련 문제