2012-05-23 2 views
3

사용자 정의 셀에 UITableView이 있고 그 셀에 일부 textField가 있습니다. 여기에 textFields에 일부 데이터를 입력하면 사라지는 테이블 뷰 데이터를 스크롤 할 때마다 새 셀을 만들 때마다 생각하기 때문에 생각합니다.UITableViewCell 텍스트가 사라져서 테이블 뷰 스크롤시 데이터가 사라짐

배열을 사용하고 모든 셀을 삽입하여이 문제를 해결했지만 여기서 셀을 재사용 할 수 없으므로 메모리가 낭비됩니다.

이 동작을 어떻게 처리해야합니까?

답변

1

가 어떻게 함께 할 수있는 뭔가가있는 것처럼 소리가 난다 tableView:cellForRowAtIndexPath: 방법으로 셀을 만듭니다. 그러나 귀하의 구현을 보지 않고는 일반적인 제안 만 할 수 있습니다 (귀하의 질문에 귀하의 구현을 추가하면 사람들은 대답에 대해 좀 더 구체적으로 될 수 있습니다).

NSString *identifier = @"reuseIdentifier"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease]; 
} 
cell.textLabel.text = @"text relating to index path"; 

은 위의 재사용 가능한 세포가 있는지 확인하기 위해 tableView을 확인합니다 : 그런 다음 다음과 같은 방법으로 당신의 세포를 생성하여 UITableView's 붙박이 세포 재사용 기능을 사용하여 메모리에 대한 고민하는 경우에

. none이면 nil이 반환됩니다. 이 셀은 initWithStyle:reuseIdentifier: 메서드를 사용하여 셀을 만듭니다.이 메서드는 셀이 보이지 않게 스크롤 된 경우 재사용에 적합하다고 표시합니다. 즉, 한 번에 볼 수있는 총 셀 수를 인스턴스화하여 테이블의 메모리 사용 공간을 좋고 낮게 유지합니다. 우리가 전무 검사의 세포의 textField.text 외부 설정

주 - 이것은 우리가 재사용 가능한 셀을 검색 할 경우 우리가 메서드에 전달되는 indexPath 관련 텍스트 내용과의 오래된 텍스트 내용을 덮어 씁니다 있도록하는 것입니다.

5

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

방법에 원하는 텍스트 필드의 값을 모든 텍스트 필드의 값을 저장하고 설정하는 배열을 사용

관련 문제