0

您好,我目前正在使用Simon Lee 的精彩教程来扩展我的细胞。一切正常。

我的单元格是 100 像素,当展开时单元格变为 144 像素高。在添加的 44px 中,我放置了一个带有条形按钮的工具栏。我已经让按钮工作了,但有一个问题。

当单元格展开时,我可以点击任何 100px 并关闭单元格,但是当单元格关闭时,点击单元格的下部 44px 会导致条形按钮执行其操作。我假设如果从站点隐藏时它仍然处于启用状态。

我在情节提要中禁用了用户交互,但在选择单元格时无法打开它,反之亦然!如果有人能指出我正确的方向,那就行​​了!

西蒙说了一些关于做以下事情的事情,但我不太确定在哪里实现它!我到处都试过了!

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

2 回答 2

0

didSelectRowAtIndexPath 中 tableView 的 clipsToBounds 对我来说有点奇怪

self.tableView.clipsToBounds = YES;

您是否将单元格的 clipoToBounds 设置为 YES?

于 2012-05-19T06:58:35.193 回答
0

我自己想通了。事实证明,我所要做的就是将单元格中的用户交互设置为关闭。并为选定的单元格打开它。

for(NewsCell *cell in [self.tableView visibleCells]) {
        BOOL cellIsSelected = isSelected;
        [cell.detailToolbar setUserInteractionEnabled:cellIsSelected];
}
于 2012-05-20T04:37:32.490 回答