Сбой ограничения UIButton, но работает с UILabel

Я пытаюсь добавить кнопку прагматически в UIView. Этот код будет работать с меткой пользовательского интерфейса, но при использовании его с кнопкой ограничения не выполняются. Как я могу это сделать? Спасибо.

let homeButton =  UIButton(frame: CGRectZero)
    homeButton.setTitle("Home", forState: .Normal)
    homeButton.titleLabel!.textAlignment = NSTextAlignment.Center
    homeButton.titleLabel!.textColor = UIColor.whiteColor()
    homeButton.titleLabel!.translatesAutoresizingMaskIntoConstraints = false
    containerView.addSubview(homeButton)

    let buttonWidthConstraint = NSLayoutConstraint(item: homeButton, attribute: .Width, relatedBy: .Equal, toItem: self.containerView, attribute: .Width, multiplier: 0.5, constant: 0)
    containerView.addConstraint(buttonWidthConstraint)
    let buttonHeightConstraint = NSLayoutConstraint(item: homeButton, attribute: .Height, relatedBy: .Equal, toItem: self.containerView, attribute: .Height, multiplier: 0.5,constant: 0)
    containerView.addConstraint(buttonHeightConstraint)

    let buttonXConstraint = NSLayoutConstraint(item: homeButton, attribute: .CenterX, relatedBy: .Equal, toItem: self.containerView, attribute: .CenterX, multiplier: 1, constant: 0)
    let buttonYConstraint = NSLayoutConstraint(item: homeButton, attribute: .CenterY, relatedBy: .Equal, toItem: self.containerView, attribute: .CenterY, multiplier: 1, constant: 0)
    containerView.addConstraint(buttonXConstraint)
    containerView.addConstraint(buttonYConstraint)

1 ответ

  1. вы должны использовать homeButton.translatesAutoresizingMaskIntoConstraints = falseвместо homeButton.titleLabel!.translatesAutoresizingMaskIntoConstraints = false.

    потому что вы должны отключить autoresizingmask for buttonnot for button titleLabel!

    Надеюсь, это поможет 🙂