无法解释'|'字符

时间:2016-09-14 18:46:35

标签: swift swift2 nsautolayout

我需要你的帮助,因为我不明白自动约束会发生什么。我的开关的限制使应用程序崩溃。当我删除它时,它工作得很好。 这是我得到的错误消息: 无法解释'|'字符,因为相关视图没有superview H:| -100- [V 0(35)] |

thx求助

这是我的代码:

class selectionCustomCell: UITableViewCell{
    var label: UILabel = {
        let attribution = UILabel()
        attribution.text = "Nom du label"
        attribution.textColor = UIColor(r: 0, g: 185, b: 255)
        attribution.lineBreakMode = NSLineBreakMode.ByWordWrapping
        attribution.numberOfLines = 0
        attribution.translatesAutoresizingMaskIntoConstraints = false
        return attribution
    }()

  var switchElement: UISwitch{
        let sL = UISwitch()
        sL.setOn(true, animated: true)
        sL.onTintColor = UIColor(r: 0, g: 185, b: 255)
        sL.tintColor = UIColor(r: 0, g: 185, b: 255)
        sL.translatesAutoresizingMaskIntoConstraints = false
        return sL
    }

    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: .Default, reuseIdentifier: reuseIdentifier)
        addSubview(switchElement)
        addSubview(label)
        setupViews()
    }

    func setupViews(){
        addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-20-[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": label]))          
        addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-20-[v0]", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": label]))


        addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-100-[v0(35)]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": switchElement]))


        addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-20-[v0(35)]", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": switchElement]))


    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

}

1 个答案:

答案 0 :(得分:8)

请注意声明I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:206] Initialize HostPortsGrpcChannelCache for job ps -> {url1:2220, url1:2221} I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:206] Initialize HostPortsGrpcChannelCache for job worker -> {localhost:2230, url2:2230} I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:202] Started server with target: grpc://localhost:2230 Extracting /tmp/data/train-images-idx3-ubyte.gz Extracting /tmp/data/train-labels-idx1-ubyte.gz Extracting /tmp/data/t10k-images-idx3-ubyte.gz Extracting /tmp/data/t10k-labels-idx1-ubyte.gz label的方式之间的区别:switchView初始化为闭包的输出,它在第一次被引用时执行。 label是一个计算属性,每次引用时都会调用一个getter,这意味着您在switchView中引用的版本与您调用的版本-setupViews相同。 1}}以前。由于它们不属于视图层次结构,因此可视格式无效。

如果您声明-addSubview符合switchView的声明,则您的代码应按预期运行:

label