달력

7

« 2015/7 »

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  

테이블 뷰에 editing을 yes로 주고 드래그 앤 드랍으로 셀 위치를 변경해줘야 할 필요가 생겼다.. 여기까지는 흔히 있는 일인데.. 문제는 첫 셀은 움직여서는 안된다는 조건..


        
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == 0)
        return NO;
    
    return YES;
}


요걸 사용해서 우선 첫 셀 오른쪽에는 드래그 앤 드롭용 가로줄3개가 안나오도록 했고 움직일 수 없도록 조치를 했는데.. 다른 셀을 끌어와서 첫 셀 자리로 들고오면 첫 셀이 밀리는 문제가 발생!!


이런 경우는 처음이라 어떻게 해야 하나 싶었는데 옆자리에 있던 고마우신 분이 찾아주심.. ㅎㅎ


  
- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath
{
    if (proposedDestinationIndexPath.row == 0)
        return sourceIndexPath;
    
    return proposedDestinationIndexPath;
}


움직이지 않게 하고 싶은 셀의 indexPath를 체크해서 그런 경우에는 sourceIndexPath를 리턴해주면 해당 셀은 드래그 앤 드롭에서 제외돼서 꼼짝도 안하게 된다.. 그 외의 경우는 proposedDestinationIndexPath를 리턴해주면 끝!


참 쉽죠..


이렇게 오늘도 하나 배워가는 구나.. ㅎㅎ

퇴근해야지.. ㄷㄷㄷ

Posted by 도노보노