2013-02-11 7 views
0

iPhone의 연락처 편집에서 전화 번호 또는 이메일을 추가/편집하는 것과 비슷한 기능을 다시 만들려고합니다. 난 항상 자리 표시 자 텍스트를 사용할 수있는 빈 행이 있습니다. 편집 모드 (툴바의 버튼 누름)에서 UITextField를 숨 깁니다. '변경된'콜백에서 섹션에 새 행을 삽입합니다. 아이폰 연락처 편집보기와 비슷합니다. 그러나 두 번째 행 (세 번째 행이 예상대로 삽입 됨)을 수정하기 시작한 후 첫 번째 행 텍스트 필드의 값은 자리 표시 자 값으로 지워집니다.
어딘가에서 행 1, 2 행 삽입시 텍스트 필드 값을 저장해야하고, 편집을 끝내면 (그렇지 않다고 가정) 그렇지 않으면 손실 될 것입니다. 이것은 나에게 아주 이상하게 보입니다. 그리고 이것이 유일한 방법인지 궁금합니다. 어느 시점에서 복원하겠습니까? 물론 새로운 행을 삽입하고 이전 행의 모든 ​​행에서 마지막 행의 값을 수정하면이 과정이 계속 반복됩니다. 누구나 연락처 편집 기능과 비슷한 예를 보여줄 수 있습니까? 마지막 행이 항상 "+ 값 추가"행이되도록 행을 삽입하는 방식을 변경하면 도움이 될까요? 나는 그렇게 생각하지 않을 것이다. 또한 첫 번째 행의 스타일을 UITableViewCellEditingStyleNone에서 UITableViewCellEditingStyleDelete로 바꿀 수 있으면 좋겠지 만 편집 할 토글 링을 포함하여 시도한 모든 작업 (예 : 중간에 모든 보이는 행을 전환 할 때 무시할 수 있음) UITableViewCellEditingStyleDelete를 사용하여 마지막 행을 제외하고 모두 사용할 수 있습니다. 그래서 나는 괜찮아 내가 처음 행을 삭제할 수 없다고 생각했다. (내가 원했던 것은 아니지만 나는 그걸 가지고 살 수있다.)여러 행이 주소록 전화/이메일과 마찬가지로 UITextFields를 사용하여 편집 모드에서 자동 삽입을 삽입합니다.

답변

0

확인해주세요. 그러나 볼 수없는 스크롤 행이 동일한 문제를 일으킬 것이라고 추측하고 있습니다. 따라서 textFieldDidEndEditing과 각 경우 삽입 할 때 "새로운"문자를 ​​저장해야합니다. 각 행에 대한 데이터 스토리지 배열의 해당 항목에있는 데이터. 그러나 스크롤이없는 경우에는 다음을 수행해야합니다. - (void) reloadRowsAtIndexPaths : (NSArray *) indexPaths withRowAnimat .... 수정할 섹션의 모든 행과 가능한 모든 보이는 행에 대해. 확인은 크게 감사드립니다.

0

왜 귀하의 경우에 재사용합니까? 항상 모든 행이 화면에 표시되면 각각에 대해 새 UITableViewCell을 만듭니다.

UITableViewCell *cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease]; 

구성 내용이 세포를 재사용하는 사람이 더 이상 보이지 자원을 절약하기 위해 재사용 할 수있는 많은 행을 가지고 그 사람들을위한 방법입니다 ...

[cell.contentView addSubview:WHATEVER_YOU_CREATED]; 
[cell.contentView sizeToFit]; 
return cell; 

그것을 이동합니다.

+0

MyProfilePropertyCell * cell = [[MyProfilePropertyCell alloc] initWithStyle : UITableViewCellStyleDefault reuseIdentifier : @ "MyCellFromStoryboardId"]; 이렇게하면 스토리 보드에 정의 된 사용자 정의 레이블이없는 빈 행이 생성됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 더 많이 생각할수록, 아직 스크롤하지 않고 재사용해서는 안되기 때문에 이것이 원래의 문제에서 설명한대로 문제가되지는 않는다고 생각합니다. 그러나 올바른 사용자 정의 셀을 표시 할 수있는 경우 셀 재사용을 사용할 필요가 없습니다. – kos

+0

dequeueReusableCellWithIdentifier를 사용할 때 initWithStyle을 사용자 정의 구현에서 프레임 워크에 의해 수행되는 모든 컨트롤을 초기화해야하기 때문에 이것이라고 생각하십니까? 대안이 있습니까? – kos

+0

reuseIdentifier는 스토리 보드 ID와 아무런 관련이 없습니다. – jeka