UITableViewCell 背景隐藏 UI 元素

Posted

技术标签:

【中文标题】UITableViewCell 背景隐藏 UI 元素【英文标题】:UITableViewCell background hiding UI Elements 【发布时间】: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”供您查看和代码。谢谢! 【参考方案1】:

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

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

【讨论】:

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

所以我在设置 -

cell.textLabel.text?

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

感谢大家的帮助!

【讨论】:

以上是关于UITableViewCell 背景隐藏 UI 元素的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell Selectioncolor 隐藏一切

隐藏 UILabel 背景颜色并在需要时恢复它

使用 UIAppearence 设置 UITableViewCell 选择的背景颜色不起作用

html iOS 7.1的Safari为元标签新增minimal-ui属性,在网页加载时隐藏地址栏与导航栏,http://www.36kr.com/p/210516.html

UITableViewCell 的左右边距

如何隐藏 UITableViewCell?请看截图