2012-07-01 2 views
0

테이블보기가 있습니다. 여러 행이 있습니다. 재주문을 편집 모드에서 수행하는 동안, 항상 한 행을 첫 번째 인덱스에 유지하길 원합니다. 따라서 사용자가 첫 번째 행을 사용하여 행을 교체하려는 경우이를 허용해서는 안됩니다. 그러나 두 번째와 세 번째 행 사이에 가능해야합니다.하나의 행만 정렬하는 방법 - obj c

어떻게하면됩니까? 사전에 당신에게 첫 번째 테이블 뷰 셀의 showsReorderControlNO

+0

확실하지 않습니다 ... 'UITableViewDataSource'에서'tableView : canMoveRowAtIndexPath :'를 시도해 보셨습니까? –

답변

2

설정을 주셔서 감사하고 첫 번째 행에 대한 tableView:canMoveRowAtIndexPath:NO을 반환합니다.

당신은 또한 UITableViewDelegate 방법 여기 tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath:

제안 하나 인 경우는 대체 인덱스 경로를 반환 할 수 구현할 수 (0을, 0).

반환 값

이동 작업의 원하는 행 대상의 위치를 ​​인덱스 경로 개체. 위치가 적합한 경우 proposedDestinationIndexPath를 반환합니다. 이 위로 이동하고, 테이블 뷰 다운됨에 따라

토론

이 방법은 특정 행에 대한 타겟 행의 정의를 허용한다. 끌린 행이 다른 행 위에 놓이면 대상 행은 을 아래쪽으로 슬라이드하여 재배치를위한 공간을 시각적으로 만듭니다. 이것은 proposedDestinationIndexPath로 식별되는 위치입니다.

+0

대단히 감사합니다 DrummerB. 첫 번째 옵션은 저에게 효과가 없었습니다. 나는 이미 그것을 시도했다. 그러나 두 번째 "targetIndexPathForMoveFromRowAtIndexPath : toProposedIndexPath :"는 완벽하게 작동했습니다. Thanks again again – BPL

+0

예, 첫 번째 옵션은 첫 번째 셀의 순서 컨트롤을 숨기므로 이동할 수 없습니다. 그러나 다른 셀이 첫 번째 행으로 이동하지 못하도록 대리자 메서드를 구현해야합니다. – DrummerB

관련 문제