2017-10-31 5 views
-2

UISwitchをSwiftのtableViewセルにプログラムで埋め込むにはどうすればよいですか? は、私はここでそのSwiftでUITableViewセルのスイッチを追加

let shareLocationSwitch = UISwitch() 
cell.accessoryView = shareLocationSwitch 
+0

それだけでUISwitch()などの変数を作成し、あなたがそこに着くために多くのものを行う必要はありませんので で細胞accesooryViewを呼び出すので、シンプルで簡単です。コードはすでに質問の中にあります。 – TAO

+0

質問を編集するだけです。 ソリューションに感謝します。 – TAO

+0

なぜ私の質問は-2ポイントを受け取った、それは本当にシンプルで、私はちょうどそれを送信し、誰も混乱しないように質問を編集良いソリューションを見つけた後。 – TAO

答えて

0

ようにそれをやっているあなたはUITableViewセルにUISwitchを埋め込むことができる方法です。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {   
       var cell = tableView.dequeueReusableCell(withIdentifier: "yourcellIdentifire", for: indexPath) as! YourCellClass 

         //here is programatically switch make to the table view 
         let switchView = UISwitch(frame: .zero) 
         switchView.setOn(false, animated: true) 
         switchView.tag = indexPath.row // for detect which row switch Changed 
         switchView.addTarget(self, action: #selector(self.switchChanged(_:)), for: .valueChanged) 
         cell.accessoryView = switchView 

       return cell 
     } 

は、ここではスイッチコールベック方法

func switchChanged(_ sender : UISwitch!){ 

     print("table row switch Changed \(sender.tag)") 
     print("The switch is \(sender.isOn ? "ON" : "OFF")") 
} 

@LeoDabus Great! explanationです。

注:お使いのtableviewが複数sectionを有することができるならば、あなたはCustomCellのサブクラスUITableViewCellを作成し、accessoryViewawakeFromNibUITableViewCell内部メソッドの代わりに、テーブルビューcellForRowAt方法を設定する必要があります。デキューすると、再利用可能なcellあなたCustomCellにキャストHere is sample from @LeoDabus

+0

それをする良い方法 – TAO

+0

誰も私を説明してくださいなぜあなたは私が投票ダウンを与えてください。コメントを残してください –

+0

私はあなたの答えを受け入れ、あなたに投票をしたり、あなたからの投票をしなかった – TAO

関連する問題