iPhone의 연락처 편집에서 전화 번호 또는 이메일을 추가/편집하는 것과 비슷한 기능을 다시 만들려고합니다. 난 항상 자리 표시 자 텍스트를 사용할 수있는 빈 행이 있습니다. 편집 모드 (툴바의 버튼 누름)에서 UITextField를 숨 깁니다. '변경된'콜백에서 섹션에 새 행을 삽입합니다. 아이폰 연락처 편집보기와 비슷합니다. 그러나 두 번째 행 (세 번째 행이 예상대로 삽입 됨)을 수정하기 시작한 후 첫 번째 행 텍스트 필드의 값은 자리 표시 자 값으로 지워집니다.
어딘가에서 행 1, 2 행 삽입시 텍스트 필드 값을 저장해야하고, 편집을 끝내면 (그렇지 않다고 가정) 그렇지 않으면 손실 될 것입니다. 이것은 나에게 아주 이상하게 보입니다. 그리고 이것이 유일한 방법인지 궁금합니다. 어느 시점에서 복원하겠습니까? 물론 새로운 행을 삽입하고 이전 행의 모든 행에서 마지막 행의 값을 수정하면이 과정이 계속 반복됩니다. 누구나 연락처 편집 기능과 비슷한 예를 보여줄 수 있습니까? 마지막 행이 항상 "+ 값 추가"행이되도록 행을 삽입하는 방식을 변경하면 도움이 될까요? 나는 그렇게 생각하지 않을 것이다. 또한 첫 번째 행의 스타일을 UITableViewCellEditingStyleNone에서 UITableViewCellEditingStyleDelete로 바꿀 수 있으면 좋겠지 만 편집 할 토글 링을 포함하여 시도한 모든 작업 (예 : 중간에 모든 보이는 행을 전환 할 때 무시할 수 있음) UITableViewCellEditingStyleDelete를 사용하여 마지막 행을 제외하고 모두 사용할 수 있습니다. 그래서 나는 괜찮아 내가 처음 행을 삭제할 수 없다고 생각했다. (내가 원했던 것은 아니지만 나는 그걸 가지고 살 수있다.)여러 행이 주소록 전화/이메일과 마찬가지로 UITextFields를 사용하여 편집 모드에서 자동 삽입을 삽입합니다.
0
A
답변
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;
그것을 이동합니다.
MyProfilePropertyCell * cell = [[MyProfilePropertyCell alloc] initWithStyle : UITableViewCellStyleDefault reuseIdentifier : @ "MyCellFromStoryboardId"]; 이렇게하면 스토리 보드에 정의 된 사용자 정의 레이블이없는 빈 행이 생성됩니다. 내가 도대체 뭘 잘못하고있는 겁니까? 더 많이 생각할수록, 아직 스크롤하지 않고 재사용해서는 안되기 때문에 이것이 원래의 문제에서 설명한대로 문제가되지는 않는다고 생각합니다. 그러나 올바른 사용자 정의 셀을 표시 할 수있는 경우 셀 재사용을 사용할 필요가 없습니다. – kos
dequeueReusableCellWithIdentifier를 사용할 때 initWithStyle을 사용자 정의 구현에서 프레임 워크에 의해 수행되는 모든 컨트롤을 초기화해야하기 때문에 이것이라고 생각하십니까? 대안이 있습니까? – kos
reuseIdentifier는 스토리 보드 ID와 아무런 관련이 없습니다. – jeka