【问题标题】:UITableViewCell background hiding UI ElementsUITableViewCell 背景隐藏 UI 元素
【发布时间】: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

Xcode Storyboard Screenshot

自定义 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 文件。如果以编程方式,您需要将其添加到UITableViewCellContentViewContentViewUITableViewCell 的子视图,用于显示您的单元格内容。
  • .xib 文件。它的层次结构如下所示:Table View > Cell > Content View > UISwitch
  • 这是我正在谈论的视频 - quick.as/rPyUb8mv
  • 发布您的表格视图布局的屏幕截图
  • 在原始帖子/问题中添加了“Xcode Storyboard Screenshot”供您查看和代码。谢谢!

标签: ios swift uitableview swift3 uiswitch


【解决方案1】:

如果您使用故事板,请确保您的 UISwitch 位于正确的视图内,并且位于文档大纲中的其他组件下方。

如果您以编程方式在单元格内生成视图,请确保最后使用 addSubView 将 UISwitch 添加到正确的视图。您还可以使用view.layer.zPosition 属性设置zPositions。

【讨论】:

  • 使用故事板。它的层次结构如下所示:Table View > Cell > Content View > UISwitch
【解决方案2】:

所以我在设置 -

cell.textLabel.text?

改变tableView中单元格的文本。问题是,显然,当您使用自定义单元格时,如果没有一些时髦的行为,您将无法访问默认单元格属性。

感谢大家的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    相关资源
    最近更新 更多