こんにちは私は現在、SimonLeeのすばらしいチュートリアルを使用してセルを拡張しています。すべてが正常に機能しています。
私のセルは100ピクセルで、展開するとセルの高さは144ピクセルになります。追加された44pxに、バーボタン付きのツールバーを配置しました。ボタンが機能するようになりましたが、問題が1つあります。
セルが展開されると、100ピクセルのいずれかをタップしてセルを閉じることができますが、セルが閉じられると、セルの下の44ピクセルをタップすると、バーボタンがそのアクションを実行します。サイトから非表示にした場合でも有効になっていると思います。
ストーリーボードでユーザーインタラクションを無効にしましたが、セルが選択されているときにオンにできません。その逆も同様です。誰かが私を正しい方向に向けることができれば、それはうまくいくでしょう!
サイモンは次のことについて何か言いましたが、正確にどこに実装すればよいのかよくわかりません。どこでもやってみました!
for(NewsCell *cell in [self.tableView visibleCells]) {
BOOL cellIsSelected = [selectedIndexes objectForKey:indexPath];
[cell.detailToolbar setUserInteractionEnabled:cellIsSelected];
}
そして、これが私のコードの一部です:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
// If our cell is selected, return double height
if([self cellIsSelected:indexPath]) {
return 144.0;
}
// Cell isn't selected so return single height
return 100.0;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Deselect
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
self.tableView.clipsToBounds = YES;
// Store cell 'selected' state keyed on indexPath
NSNumber *selectedIndex = [NSNumber numberWithBool:isSelected];
[selectedIndexes setObject:selectedIndex forKey:indexPath];
// This is where magic happens...
[self.tableView beginUpdates];
[self.tableView endUpdates];
}