在UItableview中为每个单元格添加一个开关

在UItableview中为每个单元格添加一个开关

问题描述:

我正在为我的flashcard应用程序构建一个设置页面。我已经到了当我在模拟器中运行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 –

您需要:

  1. 创建一个自定义UITableViewCell子类,具有@IBOutlet为了你们的文本标签和UISwitch
  2. 在您的表视图的storyboard或xib中,将动态表视图单元格的类型设置为您的自定义子类的名称。
  3. 在单元格的“属性”检查器中,给它一个自定义重用标识符。
  4. UISwitch拖动到动态单元格原型中。
  5. 将自定义单元的插座连接到文本标签并切换。
  6. 在你tableView(_:cellForRowAt:)实现,而不是每次实例表格单元格(这几乎是从未你想要做什么),叫tableView.dequeueReusableCell(withIdentifier:for:)并传入您在步骤中使用自定义的重用标识符3.铸将单元格返回到您的自定义类型,然后设置插座的值。

在cellForRawAtIndexPath试试这个:

let mySwitch = UISwitch() 
cell.accessoryView = mySwitch