2011-02-23 5 views
1

사용자가이 코드를 사용하여 편집 모드로 테이블을 전환 할 때 내가 jQuery과 섹션에 행을 추가 해요 추가 할 때 :아이폰 OS : editingStyleForRowAtIndexPath 새로운 셀

만들 수있는 개체는 "새로운 추가를 공급 업체 ... "행. 이것은 작동하지만 테이블이 편집 스타일을 가져 와서 더하기 또는 빼기 아이콘을 추가 할 수 있으면 문제가 있습니다.

- (UITableViewCellEditingStyle) tableView:(UITableView *) tableView editingStyleForRowAtIndexPath:(NSIndexPath *) indexPath { 
    return ([self.tableView isEditing] && indexPath.row == 0) ? UITableViewCellEditingStyleInsert : UITableViewCellEditingStyleDelete; 
} 

순서는 다음과 같이 갈 것 같다

  1. 표 편집으로 전환됩니다. 이 때 공급자 행은 하나 뿐이므로 row == 0 인 편집 스타일을 쿼리합니다.
  2. 새 행의 삽입이 완료되면 행 == 0 인 편집 스타일에 대한 다른 쿼리가 다시 트리거됩니다.

그래서이 시퀀스를 사용하고 행 번호를 사용하고 편집 스타일 아이콘을 결정하기 위해 tableView isEditing을 사용하면 새 공급자 추가 행과 현재 공급자 행에 더하기 아이콘이 추가됩니다.

행을 삽입하고 적절한 편집 스타일을 지정하는 가장 좋은 방법은 무엇입니까? 새 행을 추가하고 다른 행을 빼는 방법은 무엇입니까?

답변

3

맨 위 대신 맨 아래에 "새로 추가 ..."행을 넣으려고 했습니까? 대신 [indexPath row] == 0 확인의 대신 [indexPath row] == [items count]를 확인하고 tableView:numberOfRowsInSection: 구현은 다음과 같습니다 큰 얼간이 목장 가이드 작동합니다

- (NSInteger)tableView:(UITableView *)tableView 
numberOfRowsInSection:(NSInteger)section { 
    int numberOfRows = [items count]; 

    if ([self isEditing]) { 
     numberOfRows++; 
    } 

    return numberOfRows; 
} 

이 아이폰 프로그래밍의 예는 방법이다.

+1

감사합니다. 이미 해당 코드와 비슷한 것이 있습니다. 알아 내려고하는 것은 editingStyleForRowAtIndexPath 메시지를 보낼 때 어떤 셀이 쿼리되는지를 알려주는 방법입니다. 문제의 부분은 코드가 실행 루프로 아직 반환되지 않았기 때문에 삽입이 실행 된 동안 UITableView가 실제로 셀을 추가하지 않은 것으로 보입니다. – drekka

+0

추가 정보 - indexPath의 행에 대해 UITableView를 쿼리하는 editingStyleForRowAtIndexPath 메소드에 코드를 추가하면 어떻게됩니까? 새 셀을 삽입 한 후에도 UITableView에 아직 새 셀을 추가하지 않았기 때문에 현재 셀을 다시 가져옵니다. 실행 루프가 실행되고 애니메이션이 발생하기 전에 기다려야합니다. – drekka