При создании ленивой кнопки с рамкой, это создается в верхнем левом углу, почему это происходит? - PullRequest
0 голосов
/ 05 октября 2018

Я создаю эту 'filterButton' и устанавливаю, что она будет создана в точном положении 'menubutton', 'filterButton' идет прямо в верхний левый угол представления.

lazy var filterButton: UIButton! = {
    let button = UIButton(frame: CGRect(x: self.menuButton.frame.origin.x, y: self.button.frame.origin.y, width: 45, height: 45))
    button.translatesAutoresizingMaskIntoConstraints = false
    button.backgroundColor = .blue
    button.clipsToBounds = true
    return button
}()

икогда я проверяю и распечатываю фрейм 'filterButton', он имеет значение 'menuButton', почему это происходит?

Ответы [ 3 ]

0 голосов
/ 05 октября 2018

Добавьте следующие ограничения, где вы добавляете filterButton к вашему представлению

filterButton.leftAnchor.constraint(equalTo: menuButton.leftAnchor).isActive = true
filterButton.topAnchor.constraint(equalTo: menuButton.topAnchor).isActive = true
filterButton.rightAnchor.constraint(equalTo: menuButton.rightAnchor).isActive = true
filterButton.bottomAnchor.constraint(equalTo: menuButton.bottomAnchor).isActive = true
0 голосов
/ 05 октября 2018

проблема не в ленивой кнопке проверить вас menuButton проблема в том, что вы можете проверить это: -

lazy var filterButton: UIButton! = {
        let button = UIButton(frame: CGRect(x: 200, y: 200, width: 45, height: 45))
        button.translatesAutoresizingMaskIntoConstraints = false
        button.backgroundColor = .blue
        button.clipsToBounds = true
        return button
    }()
0 голосов
/ 05 октября 2018

Возможно, при доступе к экземпляру filterButton кадры menuButton и button не верны.Вы можете использовать ограничения макета или обновить кадр filterButton в viewDidLayoutSubviews.

...