복잡한 콘텐츠가있는 UITableView가 있습니다. 사용자는 편집 버튼을 표준 방식으로 탭하면 셀을 편집 (재배치 및 삭제) 할 수 있습니다. 그러나 세포를 "편집"모드에서 다르게 보이기를 원합니다.사용자가 편집 버튼을 누르면 UITableView 레이아웃을 다시 수행 하시겠습니까?
질문 :
어떻게 행 높이 변경을 포함하여, 편집 모드에서 jQuery과 레이아웃을 변경하려면?
편집 버튼이 각각있는 UITableViewCell (UITVC)에 WillTransitionToState/DidTransitionToState 메시지를 보냅니다 :
지금까지이 내가 가진 것입니다. 나는 UITVC를 서브 클래 싱 (subclassed)하고 각 셀 내부에서 이들에 반응하여 필요에 따라 숨어서 제거하고 개편했다. 그러나 행 높이를 변경하는 것은 하나의 셀 범위를 벗어납니다.
사용자가 편집 할 때 UITableView로 보낸 메시지가없는 것 같습니다. - tableView : commitEditingStyle : forRowAtIndexPath : 특정 행을 편집 한 후 데이터 소스로 전송됩니다.
내부 heightForRowAtIndexPath, 나는 tableView.editing 속성을 사용하여 현재 모드를 조회하고, 적절한 높이를보고 할 수 있습니다. [tableView reloadData]를 호출하여 높이 재 계산을 포함하여 테이블 재 흐름을 트리거 할 수 있습니다. 하지만 언제 부를 수 있니?
본인은 "소유"테이블보기로 다시 WillTransitionToState 내에서 세포의 메시지를 보내고, 내가 그들을 얻을 때 reloadData를 호출 할 수 있습니다. 그러나 이것은 깨지기 쉬운 것처럼 들리며 더 좋은 방법이 있어야합니다.
작품은 예상대로. 올바른 방법 서명이 - (void) setEditing : (BOOL) 애니메이션 편집 : (BOOL) 애니메이션을 사용했지만 - (UITableView *) tableView setEditing : (BOOL) 애니메이션 편집 : (BOOL)) animate, 물론 작동하지 않았다. 따라서 항상 문서에서 메소드 서명을 재확인하십시오. :) – Jaanus
reloadData 죽은 좋은 편집 애니메이션을 죽이고 ... –