2013-07-25 1 views
0

나는 일주일에 7 일을 나타내는 7 개의 tableView가있는보기가 있습니다. 내가 태그가 올바르게 표시되는 셀을 누르면tableView 태그가 잘못된 후 moveRowAtIndexPath 메서드

- (IBAction)longPress:(UIGestureRecognizer *)sender { 
    self.clickedPoint = [sender locationInView:self.view]; 

    // get most down subView user clicked 
    UIView *clickedSubView = [self.view hitTest:self.clickedPoint withEvent:nil]; 

    if([clickedSubView.superview isKindOfClass:[customCell class]]) { 

     // get selected tableView 
     UITableView *selectedTableView = (UITableView*)clickedSubView.superview.superview; 

     NSLog(@"Selected tag: %d", selectedTableView.tag); 
    } 
} 

: 각있는 tableView 내가 오른쪽있는 tableView에 대한 액세스 권한을 얻을 수있는 세포의 longPressure 인식기를 만든 6. 0에서 태그로 초기화됩니다. 문제는 테이블 뷰 내부에서 행을 이동할 때입니다. moveRowAtIndexPath : tableView 및 longPress에서 moveRow를 만든 tableView의 태그는 항상 다른 tableView의 마지막 longPress의 태그를 가져옵니다.

예 :

내가 그런 태그 5. 그냥 길게 누르 테이블이 다시 태그 2의 길게 누르 테이블로 이동하지만,이 시간 (직전 일) 태그 = 5를 기록합니다 태그 (2)와 함께 테이블에 moveRow. 태그가 1 인 longPress 테이블을 다시 방문한 다음 "태그 2의 테이블"(다시있을 것으로 가정)으로 이동하여 태그 1에 태그 2가 있어야합니다.

나는 beginUpdates 태그를 잃어 버렸습니다. 다시로드하는 데 필요합니다. 그래서 나는 이것을 시도했다 :

아무것도 작동하지 않는다. 나는 또한 clickedSubView에 무슨 일이 일어나고 있는지 의심 스럽다. 올바른 hitTest 뷰를 얻었지만 컬러 테두리로 테스트 한 결과 moveRowAtIndexPath 메서드 다음에 잘못된 태그가있는 경우에만 올바른 뷰를 얻을 수 있었다.

감사합니다.

답변

1

tableviews에 대한 사용자 지정 셀을 사용하는 경우 사용자 지정 셀에 하나의 레이블을 추가하거나 해당 태그를 표시하고 싶지 않으면 숨긴 상태로 유지한다고 가정합니다.

- (UITableViewCell *) tableView : (UITableView *) tableView cellForRowAtIndexPath : (NSIndexPath *) indexPath 메소드에서 태그 뷰를 셀에로드 할 때 태그 레이블을 설정하면이 태그 문제가 발생하지 않습니다.

+0

고마워요! – lopes710

+0

@Aniket Kote 사용자 정의 셀의 레이블에 값을 설정해야 할 때 알려주시겠습니까? 인덱스 위치 4에서 0으로 행을 이동하면 태그는 인덱스 4 행까지 변경됩니다. – Ganesh

0

오래 누르고 있던 표보기를 보려면 표보기 자체 (셀이 아님)에 제스처 인식기를 추가하십시오. 그런 다음 sender.view으로보기를 요청하면됩니다. 필요한 경우 실제로 길게 눌려진 뷰를 얻기 위해 히트 감지를 수행 할 수 있습니다.

+0

나는 또한 다른 것들에 사용하기 때문에 셀에 길게 눌러 진 것을 언급해야한다. 그 전에 언급하지 못한 죄송합니다. – lopes710

+0

'다른 것들'은 무엇입니까? 다른 방법보다 테이블에서 셀로 이동하는 것이 더 쉽습니다. – Wain

+0

longPress는 내용이 변경되었지만 몇 가지 공통된 내용이 있기 때문에 mainView에 적용됩니다. 다른 위치에서 작동하는 longPress 메서드 인식자를 가져 오는 mainViewController가 있습니다. 그래서 나는 순간에 내용에 따라 인식 된 longPressed 뷰의 "변형"을 수행합니다. – lopes710

관련 문제