2009-05-13 4 views
10

UITableView의 UITableViewCell에서 왼쪽에서 오른쪽으로 "이 행을 삭제하고 싶습니다"스 와이프에 대한 응답으로 표시된보기를 변경할 수 있습니까?UITableViewCell의 삭제 액세서리보기 변경

현재 '삭제'버튼은 다른 모든 UITableViewCell 사용자 정의 옵션을 무시하는 것으로 보입니다.

답변

15

셀을 삭제하는 까다로운 점은 왼쪽에서 오른쪽으로 스 와이프하여 "삭제"버튼을 표시하면 UITableViewCell이 UITableViewCellStateShowingDeleteConfirmationMask 상태로 이동하지만 UITableViewCellStateEditingMask 상태로 설정되지 않습니다. 즉, accessoryView을 편집 상태로 변경할 수 없습니다.

이 문제를 해결하려면 UITableViewCell의 willTransitionToState: 메서드를 살펴 보는 것이 좋습니다. 할 수있는 일은 셀을 삭제 확인 상태로 만들고이 메서드의 호출을 가로 채고 일반적으로 표시되는 "삭제"확인 버튼 대신 자신의 뷰를 표시하는 것입니다.

자세한 내용은 the docs에서 willTransitionToState: (UITableViewCell)을 참조하십시오.

+1

감사합니다. Tim. 그래서 편집 모드로 들어가려면 스 와이프를 차단할 수 있지만 UITableViewCell에서 자체 '삭제'버튼을 표시하는 것을 중단하는 방법은 분명하지 않습니다. 현재이 문제는 super에 메시지를 전달할 때 발생합니다. 문서에서 필수라고합니다. 당신이 제안하는 유일한 방법은 내 자신의 UIButton을 추가하고 dataSource의 tableView : commitEditingStyle : forRowAtIndexPath :에 의존하는 대신 직접 배선을 수행하는 것입니다. 삭제 처리가 모든 UITableViewCell 사용자 지정 옵션을 무시한다는 것은 이상한 것 같습니다. –

+0

흠. super 메소드를 호출하는 대신 나만의 삭제 버튼을 제안하고 설정하지 않는 한, UITableViewCell의 내장 Delete 버튼의 표시를 완전히 억제 할 수 있는지 확신 할 수 없습니다. willTransitionToState : 메시지를 삭제 모드로 배치하고 다시 라우팅하여 테이블을 편집 모드에 놓을 수 있습니다.이 모드는 삭제 제어도 제공합니다 (작은 빨간색 빼기 기호). – Tim

+0

그게 사납다. 지금 당장은 Apple 버튼을 사용하여 작업하고 내 슬쩍 감지 기능을 구현하고 컨트롤을 삭제할 시간이 있다고 생각합니다. –

관련 문제