在InterfaceBuilder中使用自定义accessoryView的iOS UITableViewCell

时间:2016-01-29 15:31:46

标签: ios swift uitableview interface-builder

我正在为我的Swift应用创建一个设置页面(以下是关于SO的示例)我已经将UITableViewCell以及init()处理程序中的子句划分为I' ve将accessoryView设置为UISwitch()

我在子类上也有一个自定义@IBInspectable属性,该属性也标记为@IBDesignable

@IBDesignable class TableViewSwitchCell: UITableViewCell {

    @IBInspectable var settingsKey: String?

    func build()
    {
        accessoryView = UISwitch()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        build()
    }

    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        build()
    }

    // code omitted that uses the settingsKey with NSUserDefaults
}

如何安排UISwitch在InterfaceBuilder中也可见,以便我可以附加其他目标,同时仍然只是从UITableViewCell继承

理想情况下,我不想创建一个具有自己布局的全新笔尖,因为我仍然希望保留标准UITableViewCell的大多数其他功能。

1 个答案:

答案 0 :(得分:3)

在单元格内的Interface Builder中删除UISwitch。然后用你单元格的accessoryView连接它。在标准基本细胞上,对照倾向于锁定在IB中的细胞中间。但是在运行时它将被正确定位。