我正在为我的flashcard应用构建一个设置页面。当我在模拟器中运行tableview时,我已经达到了这一点。它显示了我在“设置”变量中的所有不同类别(如下面的代码所示)。但是,我希望在创建的每一行中都有一个开关。例如,如果查看代码,则创建的第一行称为“声音效果”。该行中将有一个开关,允许用户打开和关闭声音效果。我不是问如何向交换机添加功能(虽然如果你能解释它会被赞赏)但是现在我只关心在创建的每一行中创建一个开关。谢谢!
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 :(得分:1)
在你的cellForRawAtIndexPath中试试这个:
let mySwitch = UISwitch()
cell.accessoryView = mySwitch
答案 1 :(得分:0)
你需要:
UITableViewCell
子类,其文本标签为@IBOutlet
,UISwitch
。UISwitch
拖到动态单元格原型中。 tableView(_:cellForRowAt:)
实现中,不是每次实例化一个表格单元格(几乎永远你想做什么),而是调用{{1并传入您在步骤3中使用的自定义重用标识符。将返回的单元格转换为自定义类型,然后设置出口的值。