【发布时间】:2016-10-11 15:52:17
【问题描述】:
我创建了一个自定义 UITableView 单元,并且似乎一切正常,但有一个例外。我有一个位于单元格内的 UISwitch(连接到 tableView 加载的它自己的 UITableViewCell 类),但它仅在您单击单元格或单元格背景清晰/透明时出现。理想情况下,我有一个白色的单元格背景和背景顶部的开关。
我尝试了一些 hacky 的东西,例如:
cell.bringSubview(toFront: cell.switch)
和
cell.switch.isHidden = false
但这显然不起作用。
该开关默认启用并打开。 表格视图和开关是从情节提要创建的。
层次结构看起来像这样 - TableView > Cell > Content View > Switch
这里有一个视频可以详细查看 - http://quick.as/rpyub8mv
自定义 TableViewCell 类
class SettingsBoolCell: UITableViewCell {
@IBAction func switchAction(_ sender: UISwitch) {
}
@IBOutlet weak var switchOutlet: UISwitch!
}
ViewController 实现
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
}
【问题讨论】:
-
您如何创建
UITableViewCell。以编程方式或 .xib 文件。如果以编程方式,您需要将其添加到UITableViewCell的ContentView。ContentView是UITableViewCell的子视图,用于显示您的单元格内容。 -
.xib 文件。它的层次结构如下所示:Table View > Cell > Content View > UISwitch
-
这是我正在谈论的视频 - quick.as/rPyUb8mv
-
发布您的表格视图布局的屏幕截图
-
在原始帖子/问题中添加了“Xcode Storyboard Screenshot”供您查看和代码。谢谢!
标签: ios swift uitableview swift3 uiswitch