Ios 如何在UIView()中添加按钮

Ios 如何在UIView()中添加按钮,ios,swift,Ios,Swift,所以我有 let verticalViewOne = UIView() 我想将以下按钮添加到此视图中 /* Station */ DRN1Button.tintColor = .systemPink DRN1Button.frame.size = CGSize(width: 200.0, height: 200.0) DRN1Button.setImage(UIImage(named: "DRN1.jpg"), for: U

所以我有

let verticalViewOne = UIView()
我想将以下按钮添加到此视图中

 /* Station */
        DRN1Button.tintColor = .systemPink
        DRN1Button.frame.size = CGSize(width: 200.0, height: 200.0)
        DRN1Button.setImage(UIImage(named: "DRN1.jpg"), for: UIControl.State(rawValue: UIControl.State.RawValue(play)))
        //playButton.imageView?.contentMode = .scaleAspectFit
        DRN1Button.contentVerticalAlignment = .fill
        DRN1Button.contentHorizontalAlignment = .fill
        DRN1Button.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
        DRN1Button.addTarget(self, action: #selector(playdrn1), for: .touchUpInside)
        DRN1Button.translatesAutoresizingMaskIntoConstraints = false
        
       // self.view.addSubview(playButton)
        verticalStackView.addSubview(DRN1Button)
我的问题是我该怎么做

就像这个代码一样

verticalStackView.addSubview(DRN1Button)
导致应用程序崩溃的错误

注意:当verticalStackView在中设置时,该按钮为覆盖func viewDidLoad(){

 func setupHierachy(){
        view.addSubview(containerStackView)
        view.addSubview(verticalStackView)
        
        verticalStackView.addArrangedSubview(verticalViewOne)
        //verticalStackView.addArrangedSubview(DRN1Button)
        containerStackView.addArrangedSubview(verticalStackView)
    }
我得到的错误是

Thread 1: Exception: "Unable to activate constraint with anchors <NSLayoutYAxisAnchor:0x281f52640 \"UIButton:0x10540ba90.centerY\"> and <NSLayoutYAxisAnchor:0x281f52680 \"UIView:0x10530ea40.centerY\"> because they have no common ancestor.  Does the constraint or its anchors reference items in different view hierarchies?  That's illegal."
首先,线路:

verticalStackView.addSubview(DRN1Button)
崩溃是因为您试图将子视图添加到stackView,您应该执行
addArrangedSubview


对于坠机事件:

线程1:异常:“无法使用锚激活约束” 和 因为它们没有共同的祖先。约束或其 在不同的视图层次结构中锚定引用项?这是 非法。”

你已经有了

DRN1Button.centerYAnchor.constraint(equalTo: view.centerYAnchor)

您的
drn1按钮
与您的
self.view
没有共同的祖先。这可能意味着您没有将
drn1按钮
添加到视图中,或者很可能上面的行无法完成。虽然您的按钮位于堆栈视图中,但您正在将其
中心视图
设置为与您的
self.view
相同显示如何对按钮进行约束。@Mahendra添加了完整的代码。您仍然会遇到相同的崩溃吗?是的,我仍然会遇到错误。当我注释掉按钮时,错误不会发生
DRN1Button.centerYAnchor.constraint(equalTo: view.centerYAnchor)