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 文件。如果以编程方式,您需要将其添加到UITableViewCell
的ContentView
。 ContentView
是UITableViewCell
的子视图,用于显示您的单元格内容。
.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 隐藏一切
使用 UIAppearence 设置 UITableViewCell 选择的背景颜色不起作用
html iOS 7.1的Safari为元标签新增minimal-ui属性,在网页加载时隐藏地址栏与导航栏,http://www.36kr.com/p/210516.html