隐藏UI元素的UITableViewCell背景

时间:2016-10-11 15:52:17

标签: ios swift uitableview swift3 uiswitch

我已经创建了一个自定义的UITableView Cell,一切似乎都在处理一个例外。我有一个UISwitch在单元格内部(连接到它自己的tableView加载的UITableViewCell类)但它只在你单击单元格或单元格背景清晰/透明时出现。理想情况下,我有一个白色背景的单元格和开关在背景上。

我尝试过一些像hacky这样的东西:

cell.bringSubview(toFront: cell.switch)

cell.switch.isHidden = false

但这显然不起作用。

默认情况下,开关已启用且已启用。 tableview和switch是从故事板创建的。

层次结构如下所示 - TableView>细胞>内容视图>开关

以下是详细了解的视频 - 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
}

2 个答案:

答案 0 :(得分:0)

如果您正在使用情节提要,请确保您的UISwitch位于右侧视图中,并且它位于文档大纲中的其他组件下。

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

答案 1 :(得分:0)

所以我在设置 -

cell.textLabel.text?

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

感谢大家的帮助!