2013-10-14 6 views
0

셀을 클릭하면 확장되지 않습니다. github에 문제가보고되었습니다. 문제는 iOS 7에서만 발생합니다. 이전 버전에서는 모든 것이 정상적으로 작동합니다.SDNestedTable 확장이 iOS 7에서 작동하지 않습니다.

+1

이것은 질문이 아니기 때문에 주제가 아닙니다. – Kreiri

+2

문제가 발생하여 해결책을 찾지 못했습니다. 많은 사람들이 스택 오버플로 –

+3

에서 검색을 시작하기 때문에 여기에 문제와 해결책을 게시하기로 결정 했습니까? – HamasN

답변

14

확장 된 인덱스 경로는 NSDictionary에 저장되며, 여기서 NSIndexPath은 키입니다. iOS 7 방법에서 -(CGFloat)tableView:heightForRowAtIndexPath:NSIndexPath 개체 대신 UIMutableIndexPath 개체를받습니다. 따라서 사전의 값을 검색 할 수 없습니다. 여기 SDNestedTableViewController.m이 방법 :

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    int amt = [[subItemsAmt objectForKey:indexPath] intValue]; 
    BOOL isExpanded = [[expandedIndexes objectForKey:indexPath] boolValue]; 
    if(isExpanded) 
    { 
     return [SDGroupCell getHeight] + [SDGroupCell getsubCellHeight]*amt + 1; 
    } 
    return [SDGroupCell getHeight]; 
} 

간단한 솔루션 indexPath의 값을 가질 것이다 어떤 키를 생성한다. 그리고 NSIndexPath 클래스의 멤버가 될 것입니다. 그래서이 방법을 다음과 같이 변경했습니다 :

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSIndexPath *indexPathKey = [NSIndexPath indexPathForRow:indexPath.row inSection:indexPath.section]; 
    int amt = [[subItemsAmt objectForKey:indexPathKey] intValue]; 
    BOOL isExpanded = [[expandedIndexes objectForKey:indexPathKey] boolValue]; 
    if(isExpanded) 
    { 
     return [SDGroupCell getHeight] + [SDGroupCell getsubCellHeight]*amt + 1; 
    } 
    return [SDGroupCell getHeight]; 
} 
관련 문제