2017-07-16 9 views
0

私のフラッシュカードアプリの設定ページを構築しています。私は、シミュレータでtableviewを実行すると、「設定」変数(下のコードを参照)にあるすべてのカテゴリを表示します。しかし、私は作成された各行にスイッチを入れたいと思っています。たとえば、コードを見ると、最初に作成された行が「サウンドエフェクト」と呼ばれます。この行には、サウンドエフェクトのオン/オフを切り替えるスイッチがあります。私はスイッチに機能を追加する方法を尋ねていませんが(今説明していただければ幸いです)、今はそれぞれの行にスイッチを作成するだけです。ありがとうございました!UItableviewの各セルにスイッチを追加する

import UIKit 

class ThirdViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 

var setting = ["Sound Effects", "initial /l/ 1 syllable", "initial /l/ multisyllabic", "intersyllabic /l/", "final /l/", "initial /pl/", "initial /bl/", "initial /fl/", "initial /gl/", "initial /kl/", "initial /sl/", "final /l/ clusters"] 



@IBOutlet weak var tableView: UITableView! 

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return (setting.count) 
} 
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = UITableViewCell() 
    print(indexPath.row) 
    cell.textLabel?.text = setting[indexPath.row] 
    return cell 
} 



override func viewDidLoad() { 
    super.viewDidLoad() 

    tableView.dataSource = self 
    tableView.delegate = self 



} 



} 
+0

カスタムtableviewcellを作成する必要があります –

答えて

0

以下を行う必要があります。

  1. あなたのテキストラベルとUISwitchため@IBOutlet Sを持つカスタムUITableViewCellサブクラスを作成します。
  2. テーブルビューのストーリーボードまたはxibで、ダイナミックテーブルビューセルのタイプをカスタムサブクラスの名前に設定します。
  3. セルの属性インスペクタで、カスタム再利用識別子を与えます。
  4. UISwitchをダイナミックセルプロトタイプにドラッグします。
  5. カスタムセルのアウトレットをテキストラベルに接続して切り替えます。表のセルを毎回インスタンス化し、あなたのtableView(_:cellForRowAt:)実装で
  6. 、代わりの(あるほとんど決してあなたが何をしたいのか)、tableView.dequeueReusableCell(withIdentifier:for:)を呼び出し、あなたがステップで使用されるカスタムの再利用識別子を渡す3.キャストセルをカスタムタイプに戻し、コンセントの値を設定します。
1

はあなたのcellForRawAtIndexPathでこれを試してみてください:

let mySwitch = UISwitch() 
cell.accessoryView = mySwitch 
関連する問題