Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
O NSLayoutConstraint
é uma classe fundamental no desenvolvimento de interfaces gráficas em iOS, parte do UIKit. Ele permite que desenvolvedores definam regras de layout para posicionar e dimensionar views de maneira dinâmica e responsiva. Com o advento de diferentes tamanhos de tela e orientações, o uso de constraints se tornou essencial para criar interfaces adaptáveis e robustas. Este artigo irá explorar como criar e gerenciar NSLayoutConstraint
programaticamente no ambiente Apple, fornecendo exemplos práticos para ilustrar seu uso.
Exemplos:
Vamos começar com um exemplo simples onde criamos uma UIView
e adicionamos constraints para centralizá-la na tela e definir seu tamanho.
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Criação da UIView
let myView = UIView()
myView.translatesAutoresizingMaskIntoConstraints = false
myView.backgroundColor = .red
self.view.addSubview(myView)
// Definindo constraints
let centerXConstraint = myView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor)
let centerYConstraint = myView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor)
let widthConstraint = myView.widthAnchor.constraint(equalToConstant: 100)
let heightConstraint = myView.heightAnchor.constraint(equalToConstant: 100)
// Ativando constraints
NSLayoutConstraint.activate([centerXConstraint, centerYConstraint, widthConstraint, heightConstraint])
}
}
Neste exemplo, criamos uma UIView
vermelha e a centralizamos na tela com um tamanho fixo de 100x100 pontos.
Às vezes, é necessário atualizar as constraints dinamicamente, por exemplo, ao responder a uma interação do usuário.
import UIKit
class ViewController: UIViewController {
var widthConstraint: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
// Criação da UIView
let myView = UIView()
myView.translatesAutoresizingMaskIntoConstraints = false
myView.backgroundColor = .blue
self.view.addSubview(myView)
// Definindo constraints
myView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
myView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
widthConstraint = myView.widthAnchor.constraint(equalToConstant: 100)
widthConstraint.isActive = true
myView.heightAnchor.constraint(equalToConstant: 100).isActive = true
// Adicionando um botão para atualizar a constraint
let button = UIButton(type: .system)
button.translatesAutoresizingMaskIntoConstraints = false
button.setTitle("Expandir", for: .normal)
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
self.view.addSubview(button)
button.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
button.topAnchor.constraint(equalTo: myView.bottomAnchor, constant: 20).isActive = true
}
@objc func buttonTapped() {
widthConstraint.constant = 200
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
}
}
Neste exemplo, criamos um botão que, ao ser pressionado, expande a largura da UIView
azul de 100 para 200 pontos.