1

行が選択されたときに、行の補完的なセットを簡単に薄暗くするにはどうすればよいでしょうか。

現在、セルを選択するコードがあるので、そのセルでメソッドを呼び出すことができますが、他のすべての行の不透明度を設定したいと思います。

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

編集:他のすべてのセルを繰り返し処理したくない(それらがたくさんあるため)-他のすべてのセルの上にUIViewを追加する方が簡単ではないでしょうか(これはユーザーの操作も妨げます)、選択したセルを配置しますそのビューの上 (HTML で z-index を増やすようなもの)。

4

2 に答える 2

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そのセルのアルファ (透明度) です。

于 2012-08-20T10:13:40.393 に答える
1

表示されているすべてのセルを繰り返し、淡色表示されるように構成してから、データソースのcellForIndexメソッドで、選択されたセルがあるかどうかを確認します。選択されている場合は、指定されたインデックスにあるかどうかを確認します。薄暗くなります。

于 2012-08-20T10:06:43.117 に答える