2016-05-25 4 views
0

私はtableviewセルの中にあるtableviewを持っています。 「について」、子テーブルビューであるtableviewで選択した行の背景色を設定するにはどうすればよいですか?

enter image description here

しかし、あなたはそれを見ることができます:私は内部のテーブルビューを持っていない「について」行をクリックし、「TEST1」内の「JAVA」をクリックした後

と "JAVA"は同時に背景色を持っています。これは、iOSのtableviewの自動機能です。このようなことを防ぐためのコード作成方法はわかりません。私が望むのは、 "test1"の中の "Java"をクリックすると、 "About"の背景色が消えてしまうことです。

答えて

0

を使う選択を解除するには、あなた

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    var selectedCell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)! 
    selectedCell.contentView.backgroundColor = UIColor.greyColor() 
} 

に役立ちます。このコード両方のテーブルビューから同時に選択されたセル。

これを行う最善の方法は、ネストされたテーブルビューのデリゲートを作成することです。したがって、そのセルが選択されると、親のテーブルビューにコールバックして、選択されたものを選択解除することができます。メインクラスでは、選択されたインデックスを別のインデックスが選択されているかのように追跡する必要があります。選択されたセルでセルに到達し、その選択を解除できます。

ちょっと難しいですが、1つのテーブルビューと複数のセクションを使用して同じ結果を得ることはできませんか?

+0

ありがとうございます。今私はこの問題を解決するための論理を得る。 – lynn

0

使用、それは選択された行は、あなたは一つだけにしたい場合は、セルが選択されたを追跡する必要があるとしている。このコード

override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) { 
    var cellToDeSelect:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)! 
    cellToDeSelect.contentView.backgroundColor = colorForCellUnselected 
} 
関連する問題