Ограничение между UIButton и UIView - PullRequest
0 голосов
/ 04 августа 2020

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

// Мой код ограничений

skipButtonAnchor = skipButton.anchor(view.safeAreaLayoutGuide.topAnchor, left: view.leadingAnchor, bottom: nil, right: view.trailingAnchor, topConstant: 0, leftConstant: 0, bottomConstant: 0, rightConstant: 0, widthConstant: 0, heightConstant: 50)
    
bottomStackAnchor = bottomStack.anchor(nil, left: view.leadingAnchor, bottom: view.safeAreaLayoutGuide.bottomAnchor, right: view.trailingAnchor, topConstant: 0, leftConstant: 125, bottomConstant: 0, rightConstant: 0, widthConstant: 0, heightConstant: 50)

// Я создал такую ​​функцию для .anchor:

func anchor(_ top: NSLayoutYAxisAnchor? = nil, left: NSLayoutXAxisAnchor? = nil, bottom: NSLayoutYAxisAnchor? = nil, right: NSLayoutXAxisAnchor? = nil, topConstant: CGFloat = 0, leftConstant: CGFloat = 0, bottomConstant: CGFloat = 0, rightConstant: CGFloat = 0, widthConstant: CGFloat = 0, heightConstant: CGFloat = 0) -> [NSLayoutConstraint] {
        translatesAutoresizingMaskIntoConstraints = false
}

Я с нетерпением жду помощи. Заранее спасибо

1 Ответ

0 голосов
/ 05 августа 2020

«Я новичок в разработке Swift» --- поскольку вы новичок, я настоятельно рекомендую использовать стандартный синтаксис ограничений, пока вы не узнал, как работают ограничения и автоматический макет. Затем используйте «вспомогательное развлечение c», если вы считаете, что это будет полезно.

Попробуйте это так:

override func viewDidLoad() {
    super.viewDidLoad()
    
    // setup properties for skipButton and bottomStack
    // ...
    // add subviews to bottomStack
    // ...
    
    view.addSubview(skipButton)
    view.addSubview(bottomStack)
    
    skipButton.translatesAutoresizingMaskIntoConstraints = false
    bottomStack.translatesAutoresizingMaskIntoConstraints = false
    
    // respect safe area
    let g = view.safeAreaLayoutGuide
    
    NSLayoutConstraint.activate([
        
        // constrain skipButton Top / Leading / Trailing (to safe area)
        skipButton.topAnchor.constraint(equalTo: g.topAnchor, constant: 0.0),
        skipButton.leadingAnchor.constraint(equalTo: g.leadingAnchor, constant: 0.0),
        skipButton.trailingAnchor.constraint(equalTo: g.trailingAnchor, constant: 0.0),
        
        // constrain skipButton Height = 50
        skipButton.heightAnchor.constraint(equalToConstant: 50.0),
        
        // constrain bottomStack Leading to Leading (safe-area) + 125
        bottomStack.leadingAnchor.constraint(equalTo: g.leadingAnchor, constant: 125.0),

        // constrain bottomStack Trailing / Bottom (to safe-area)
        bottomStack.trailingAnchor.constraint(equalTo: g.trailingAnchor, constant: 0.0),
        bottomStack.bottomAnchor.constraint(equalTo: g.bottomAnchor, constant: 0.0),

        // constrain bottomStack Height = 50
        bottomStack.widthAnchor.constraint(equalToConstant: 50.0),
        
    ])

}
...