单击单元格后,它不会展开。该问题在github上报告。该问题仅发生在 iOS 7 上。在以前的版本中,一切正常。
问问题
590 次
1 回答
14
问题是扩展的索引路径存储在 中NSDictionary
,其中NSIndexPath
是关键。在 iOS 7 方法中-(CGFloat)tableView:heightForRowAtIndexPath:
接收UIMutableIndexPath
对象而不是NSIndexPath
对象。因此无法检索字典中的值。这是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];
}
于 2013-10-14T07:30:52.237 回答