工作所以我用這個有用的教程而回:http://locassa.com/animate-uitableview-cell-height-change/,它是在iOS6的完美的工作。但是現在,因爲我已經將一些應用程序更新到iOS7,所以代碼不起作用......我不知道爲什麼。代碼檢查正常,它記錄哪些單元格已被選中,哪些在開始時並未使用NSMutableDictionary
雖然它只是沒有正確排序字典中的選擇,但事實並非如此。我已經得出了可能的結論,即蘋果更新iOS時可能會有所改變。這裏是我下面的代碼:擴張/收縮的UITableViewCell高度不再iOS7
首先,我記錄單元格是否選擇了「selectedIndexes」是我NSMutableDictionary
。
- (BOOL)cellIsSelected:(NSIndexPath *)indexPath {
// Return whether the cell at the specified index path is selected or not
NSNumber *selectedIndex = [selectedIndexes objectForKey:indexPath];
return selectedIndex == nil ? FALSE : [selectedIndex boolValue];
}
我didSelect方法
然後:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
BOOL isSelected = ![self cellIsSelected:indexPath];
if ([self cellIsSelected:indexPath]) {
//hide objects that are in expanded area of cell
}else {
//load objects as cell is selected
}
// Store cell 'selected' state keyed on indexPath
NSNumber *selectedIndex = [NSNumber numberWithBool:isSelected];
[selectedIndexes setObject:selectedIndex forKey:indexPath];
[self.tableView beginUpdates];
[self.tableView endUpdates];
所以現在我設置什麼,我想,當所選單元格,我定義我的期望高度(kCellHeight
)發生:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if([self cellIsSelected:indexPath])
return kCellHeight * 7;
else
return kCellHeight;
}
這現在沒有probelsm合作過,但由於某種原因,一些細胞會膨脹,別人也不會......我真的不明白,因爲字典登錄正確的indexP ath及其值,選擇或不選。希望有類似問題的人能夠指引我朝着正確的方向發展?謝謝。
作爲一個側面說明,它可能是更容易儲存關於作爲一組的選擇的數據。集合非常棒!如果您使用'NSIndexSet',則不需要將基本整數轉換爲'NSNumber'。 –