@IBDesignable-@IBOulet无

时间:2018-06-24 18:02:00

标签: swift

我不明白为什么在尝试实现@IBDesignable时出口为零。该应用不断崩溃。

import UIKit
import RxSwift
import RxCocoa

@IBDesignable
class SwitchOrderCell: UITableViewCell {

    @IBOutlet weak var orderSwitchLabel: UILabel!
    @IBOutlet weak var orderSwitch: OrderSwitch!
    var enabled: BehaviorRelay<Bool> = BehaviorRelay<Bool>(value: true)

    override func awakeFromNib() {
        super.awakeFromNib()
        orderSwitch.addTarget(self, action: #selector(update(_:)), for: .valueChanged)

    }

    func configure(with order: OrderBy) {
        self.orderSwitch.isOn = order == .new ? true : false
        orderSwitchLabel.text = self.orderSwitch.isOn ? "newest" : "oldest"


    }

    @objc func update(_ sender: UISwitch) {
        self.orderSwitch.isOn =  !self.orderSwitch.isOn
        orderSwitchLabel.text = self.orderSwitch.isOn ? "newest" : "oldest"
        enabled.accept(self.orderSwitch.isOn)
    }

    @IBInspectable var switchTintColor: UIColor = .gray {
        didSet {
            orderSwitch.backgroundColor = switchTintColor
        }
    }

    override func prepareForInterfaceBuilder() {
        super.prepareForInterfaceBuilder()

    }


    func handleSwitch(enabled:(Bool)->()) {
        enabled(self.orderSwitch.isOn)
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        // Configure the view for the selected state
    }

}

enter image description here

1 个答案:

答案 0 :(得分:0)

主要有两种可能性:

  1. 您没有在情节提要或xib中连接插座。
  2. 您不是从情节提要或xib加载单元。您是通过调用SwitchOrderCell()来创建的。