Невозможно преобразовать значение типа '()' в ожидаемый тип элемента 'NSLayoutConstraint' - PullRequest
0 голосов
/ 10 июня 2019

Я следовал руководству YouTube по созданию выпадающего списка в Swift.Я обнаружил ошибку, которую не могу исправить, я посмотрел здесь, в Stackoverflow и в результатах поиска от Google, но у меня ничего не получалось.Вот проблема, которую я получаю:

Невозможно преобразовать значение типа '()' в ожидаемый тип элемента 'NSLayoutConstraint'

Это код:

class Dropdown: UIButton, DropDownProtocol {
    var dropView = DropDownView()
    var height = NSLayoutConstraint()
    var isOpen = false

    override init(frame: CGRect) {
        super.init(frame: frame)
        self.backgroundColor = UIColor.appBlack
        dropView = DropDownView.init(frame: CGRect(x: 0, y: 0, width: 0, height: 0))
        dropView.translatesAutoresizingMaskIntoConstraints = false
        dropView.delegate = self
    }

    override func didMoveToSuperview() {
        self.superview?.addSubview(dropView)
        self.superview?.bringSubviewToFront(dropView) //Needed?

        NSLayoutConstraint.activate([
            dropView.topAnchor.constraint(equalTo: self.bottomAnchor),
            dropView.centerXAnchor.constraint(equalTo: self.centerXAnchor),
            dropView.widthAnchor.constraint(equalTo: self.widthAnchor),
            height = (dropView.heightAnchor.constraint(equalToConstant: 0)) <--- problem occurs here
        ])
    }
}

1 Ответ

2 голосов
/ 10 июня 2019

Не пытайтесь присвоить значение height внутри вызова для activate.

Рефакторинг только немного:

override func didMoveToSuperview() {
    self.superview?.addSubview(dropView)
    self.superview?.bringSubviewToFront(dropView) //Needed?

    height = dropView.heightAnchor.constraint(equalToConstant: 0)

    NSLayoutConstraint.activate([
        dropView.topAnchor.constraint(equalTo: self.bottomAnchor),
        dropView.centerXAnchor.constraint(equalTo: self.centerXAnchor),
        dropView.widthAnchor.constraint(equalTo: self.widthAnchor),
        height
    ])
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...