La acción UIButton no se llama cuando se agrega como una subvista en UIView con setTranslatesAutoresizingMaskIntoConstraints (false)

UIBbot "presionado" func no se llama cuando se agrega como la subvista de una UIView. Codifique como a continuación. Sin embargo, su trabajo cuando quité el setTranslatesAutoresizingMaskIntoConstraints (falso). Necesito usar este método para cambiar el tamaño del layout automático.

var myView = UIView() let orderBook = UIButton() override func viewDidLoad() { super.viewDidLoad() myView.backgroundColor = UIColor.networkingColor() myView.setTranslatesAutoresizingMaskIntoConstraints(false) self.view.addSubview(myView) let views1 = ["myView" : myView] var constV = NSLayoutConstraint.constraintsWithVisualFormat("V:|-[myView(>=100)]-|", options: NSLayoutFormatOptions.DirectionLeadingToTrailing, metrics: nil, views: views1) var constH = NSLayoutConstraint.constraintsWithVisualFormat("H:[myView(==100)]|", options: NSLayoutFormatOptions.DirectionLeadingToTrailing, metrics: nil, views: views1) self.view.addConstraints(constH) self.view.addConstraints(constV) orderBook.setTitle("Order Book", forState: UIControlState.Normal) orderBook.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal) orderBook.addTarget(self, action: "pressed:", forControlEvents: UIControlEvents.TouchUpInside) myView.addSubview(orderBook) } func pressed(sender: UIButton!) { println("pressed") } override func viewDidLayoutSubviews() { orderBook.frame = CGRectMake(0, 0, myView.frame.width, 100) } 

Entiendo que mi respuesta es un poco tarde, pero de todos modos responderé a aquellos que siguen teniendo este problema, o he encontrado una solución.

La razón por la que no puede interactuar con el button UIB después de haberlo agregado a UIView mediante progtwigción es porque no ha agregado todas las restricciones necesarias al button UIB. En mi caso particular, no agregué la restricción Anchura / Altura. A continuación se muestra un ejemplo de un button que creé mediante progtwigción al que agregué una UIView también creada de manera programática. Observe las restricciones que agregué al button.

  var popupView = UIView() popupView.setTranslatesAutoresizingMaskIntoConstraints(false) popupView.backgroundColor = Color.fromHex("#FFFFFF", alpha: 1) popupView.layer.cornerRadius = 20 popupView.clipsToBounds = true var bottomView = UIView(frame: CGRectMake(0, 0, popupView.frame.size.width, 80)) bottomView.setTranslatesAutoresizingMaskIntoConstraints(false) var singleBtn = UIButton() singleBtn.titleLabel?.font = UIFont(name: "Nunito-Regular", size: 20) singleBtn.setTitleColor(Color.fromHex("#979797", alpha: 1), forState: UIControlState.Normal) singleBtn.setTitleColor(Color.fromHex("#56DAF0", alpha: 1), forState: UIControlState.Highlighted) singleBtn.setTitle("OK", forState: UIControlState.Normal) singleBtn.addTarget(self, action: "singleBtnAction:", forControlEvents: UIControlEvents.TouchUpInside) singleBtn.setTranslatesAutoresizingMaskIntoConstraints(false) singleBtn.backgroundColor = UIColor.networkingColor() bottomView.addSubview(singleBtn) bottomView.addConstraint(NSLayoutConstraint(item: singleBtn, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1.0, constant: 50)) bottomView.addConstraint(NSLayoutConstraint(item: singleBtn, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1.0, constant: 50)) bottomView.addConstraint(NSLayoutConstraint(item: singleBtn, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: bottomView, attribute: NSLayoutAttribute.CenterX, multiplier: 1.0, constant: 0)) bottomView.addConstraint(NSLayoutConstraint(item: singleBtn, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: bottomView, attribute: NSLayoutAttribute.CenterY, multiplier: 1.0, constant: 0))