2016-10-11 9 views
0

カスタムUITableViewセルを作成しましたが、すべてが1つの例外を除いて動作しているようです。私はセル内にあるUISwitchを持っています(それは自分自身のUITableViewCellクラスに接続してtableViewを読み込みます)が、セルをクリックするか、セルの背景が透明/透明である場合にのみ表示されます。理想的には、私は背景の上にセルとスイッチのための白い背景があります。UITableViewCellバックグラウンドUI要素を隠す

cell.bringSubview(toFront: cell.switch) 

cell.switch.isHidden = false 

しかし、それは明らかに動作しませんでした:

は、私のようないくつかのハックのものを試してみました。

スイッチはデフォルトで有効になっています。 テーブルビューとスイッチはストーリーボードから作成されます。

階層は次のようになります - テーブルビュー>セル>コンテンツ表示>

スイッチここで詳細に参照するにはビデオだ - http://quick.as/rpyub8mv

Xcode Storyboard Screenshot

カスタムTableViewCellクラス

class SettingsBoolCell: UITableViewCell { 

@IBAction func switchAction(_ sender: UISwitch) { 
} 
@IBOutlet weak var switchOutlet: UISwitch! 

} 

ViewContr oller実装

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "settingsSectionOne", for: indexPath) as! SettingsBoolCell 
    switch indexPath.section { 
    case 0: cell.textLabel?.text = titles[0] 
    case 1: cell.textLabel?.text = titles[1] 
    case 2: cell.textLabel?.text = titles[2] 
    default:() 
    } 
    return cell 
} 
+0

どのように 'UITableViewCell'を作成していますか?プログラムまたは.xibファイル。プログラム的に 'UITableViewCell'の' ContentView'に追加する必要がある場合。 'ContentView'は' UITableViewCell'のサブビューです。あなたのセルの内容を表示するのに使われます。 –

+0

.xibファイル。その階層は次のようになります:テーブルビュー>セル>コンテンツビュー> UISwitch –

+0

ここに私が話していることのビデオがあります - http://quick.as/rPyUb8mv –

答えて

0

だから私は、設定された -

cell.textLabel.text? 

をのtableView細胞内のテキストを変更します。問題は、明らかにカスタムセルを使用しているときに、ファンキーな動作をせずにデフォルトのセルプロパティにアクセスできないことです。

ありがとうございました。

0

あなたはストーリーボードを使用している場合は、あなたのUISwitchは、右のビュー内にある、そしてそれはあなたの文書のアウトライン内の他のコンポーネントの下にあるということを確認してください。

セル内のビューをプログラムで生成する場合は、最後にaddSubViewを使用してUISwitchを右側のビューに追加することを確認してください。 view.layer.zPosition属性でzPositionsを設定することもできます。

+0

ストーリーボードの使用。その階層は次のようになっています:テーブルビュー>セル>コンテンツビュー> UISwitch –

+0

ここで私が話していることのビデオです - http://quick.as/rPyUb8mv –