Svi*_*miv 0 custom-controls uitableview uikit nested-table ios
单击单元格后,它不会展开.该问题在github上报告.该问题仅适用于iOS 7.在以前的版本中一切正常.
Svi*_*miv 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];
}
Run Code Online (Sandbox Code Playgroud)
最简单的解决方案是创建一些具有值的键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];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
585 次 |
| 最近记录: |