0

我有一个包含许多单元格的 Tableview。我实现了以下代码以允许用户编辑表格。

当用户开始编辑时,如何使单元格淡出?

- (BOOL) tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}

-(void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
selectedCell.alpha = 0.1;

if ( editingStyle == UITableViewCellEditingStyleDelete)
{[XC1 removeObjectAtIndex:indexPath.row];
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];

}

}

我添加的试图使单元格褪色的当前代码不起作用!

UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
selectedCell.alpha = 0.1;

我希望有一个人可以帮助我!

4

1 回答 1

0

首先,我不确定您是否可以像这样设置单元格的 alpha。请记住,单元格被回收并且不“属于”一个特定的索引路径。也许您应该首先在编辑模式之外进行一些实验。

commitEditingStyle其次,在调用之前更改方法中的单元格deleteRowsAtIndexPaths:几乎肯定不会做任何事情。此方法仅在确认编辑模式下的表格视图更改时调用,而不仅仅是在选择单元格时调用。

另外,请注意,设置视图的 alpha 不会动画此更改。您可以尝试在调用之前添加动画deleteRowsAtIndexPaths

[UIView animateWithDuration:0.25 animations:^{
   cell.alpha = 0.0; 
} completion:^(BOOL finished) {
   // remove the cell
}];

也许您想将效果链接到选择单元格。这最好通过覆盖来完成setSelected:animated:

于 2013-02-22T00:20:51.617 回答