启用&禁用扩展单元格中的UI工具栏

时间:2012-05-16 10:46:10

标签: iphone ios ios5 uitableview

我有一个单元格(videoCell),未选中时的高度为100px,选中时则扩展为144px。在扩展的44​​像素中,我通过故事板放置了一个工具栏(detailToolbar)。

现在这是我的问题。如果为工具栏启用了用户交互,则条形按钮可以工作,只需关闭单元格,我就可以点击单元格的原始100px中的任何一个。但是,当我试图扩展一个单元时,问题就出现了。如果我点击未选中单元格的底部44px,则不会触发任何内容,但只有在选择前56个像素时才会响应。我假设单元格后面的detailToolbar阻止它工作。

这是我的一些代码。我正在使用Simon Lee's tutorial扩展细胞。

- (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];
}

1 个答案:

答案 0 :(得分:0)

我自己也回答了。我在Did Select Row方法中执行了以下操作:

for(NewsCell *cell in [self.tableView visibleCells]) {
    BOOL cellIsSelected = isSelected;
    [cell.detailToolbar setUserInteractionEnabled:cellIsSelected];
}

它完美无缺!