처음에는 하나의 사용자 정의 셀을로드하는 tableView가 있습니다. 셀에는 사용자가 수정할 수있는 텍스트 컨트롤과 세그먼트 컨트롤이 있습니다. 또한 셀 단추를 추가하면 이전 셀 아래에 다른 사용자 정의 셀이 추가됩니다. 사용자는 이러한 사용자 정의 셀을 최대 15 개까지 추가 할 수 있습니다. 처음 몇 개의 셀이 결국 화면에서 사라지고 새로운 셀이 만들어지면 index.row 위치 0, 1, 2 등의 동일한 셀이 생성됩니다.dequeueReusableCellWithIdentifier에 대한 해결 방법
예 : 사용자가 index.row 위치 0에있는 사용자 정의 셀의 텍스트 필드에 "Test"를 입력합니다. 이제 해당 셀이 화면을 벗어나고 사용자가 새 셀을 추가하면 그 원래 셀을 "Test"와 같은 모든 textfield.text 값. 그리고 새 셀의 textfield.text 값을 "Demo"라고 말하도록 수정하면 index.row 위치의 텍스트 필드가 0으로 변경됩니다.
이제 dequeueReusableCell이 어떻게 작동하는지 알았습니다. 그것은 화면 밖에있는 세포를 잡습니다. 하지만 어떻게이 문제를 해결해야합니까? 그리고 매번 고유 한 셀을 생성하십시오.
* 편집 이것은 내가 새 셀을 삽입 한 방법입니다.
/* create cell and add to array */
NSString *CellIdentifier1 = @"cell";
CustomCell *customCell = (CustomCell*)[self.myTableView dequeueReusableCellWithIdentifier:CellIdentifier1];
/* save cell to array */
[self.fetchCellArray addObject:customCell];
/* Add cell in table */
NSIndexPath *indexPath2 = [NSIndexPath indexPathForRow:deleteInsertIndex inSection:0];
[self.myTableView insertRowsAtIndexPaths:@[indexPath2] withRowAnimation:UITableViewRowAnimationAutomatic];
왜 고유 한 셀을 만들어야합니까? 위로 스크롤하면 셀을 다시 큐에서 빼내고 올바른 텍스트를 그 셀에 놓습니다. –
데이터를 어디에 저장합니까? 배열에 저장 한 다음 셀을 dequeue하면 배열에서 문자열을 가져 와서 셀의 레이블을 해당 문자열로 설정하면됩니다. –