昏暗的一切,但选择行ios

时间:2012-08-20 10:03:23

标签: ios uitableview

当一个人被选中时,我怎么能轻易地调整互补的行集。

现在我有了选择单元格的代码,所以我可以调用它的方法,但我想设置所有其他行的不透明度。

-(void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    SummaryCell * selectedCell = [tableView cellForRowAtIndexPath:indexPath];
    [selectedCell manageContent];
}

编辑:我不想遍历所有其他单元格(因为会有很多单元格) - 在所有其他单元格上面添加UIView会不会更容易(这也会阻止用户交互)和放置该视图上方的选定单元格(类似于在HTML中增加z-index)。

2 个答案:

答案 0 :(得分:2)

这取决于“暗淡”其他行的含义。迭代所有可见行并在所选行以外的所有行上设置属性的过程如下: -

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    for (UITableViewCell *otherCell in self.tableView.visibleCells) {
        NSIndexPath *otherIndexPath = [self.tableView indexPathForCell:otherCell];
        if (![indexPath isEqual:otherIndexPath]) { // exclude the selected cell
            // Do whatever you want with otherCell here
        }
    }
}

我的评论在哪里,您可以在otherCell上设置您喜欢的任何属性。例如,otherCell.alpha,即该单元格的alpha(透明度)。

答案 1 :(得分:1)

您可以迭代所有可见单元格,将它们配置为灰色,然后在数据源上使用cellForIndex方法检查是否存在选定单元格(如果有),检查它是否位于询问索引处,如果是,则将单元格配置为选中如果不是暗淡的话。