Quando deve alterar o método loadView?
sobes.tech IA
Resposta da IA
Alterar o método loadView só é necessário quando não estiver a usar storyboards ou ficheiros .xib para criar a vista do controlador (view). Nestes casos, cria toda a hierarquia de vistas programaticamente em loadView, em vez de permitir que o UIViewController a carregue a partir do Interface Builder.
Dentro de loadView, deve:
- Criar a vista raiz (
view) para o controlador. - Atribuir a vista criada à propriedade
self.view.
Nunca chame [super loadView] ao sobrescrever este método, pois isso causará um ciclo infinito ou outros efeitos secundários indesejados.
// Exemplo de sobrescrita de loadView
override func loadView() {
// Criar a vista raiz programaticamente
let newView = UIView()
newView.backgroundColor = .white
// Criar e adicionar sub-vistas
let label = UILabel()
label.text = "Olá do código!"
label.translatesAutoresizingMaskIntoConstraints = false // Desativar Auto Resizing Mask
newView.addSubview(label)
// Configurar as restrições para as sub-vistas
NSLayoutConstraint.activate([
label.centerXAnchor.constraint(equalTo: newView.centerXAnchor),
label.centerYAnchor.constraint(equalTo: newView.centerYAnchor)
])
// Atribuir a vista criada à propriedade view do controlador
self.view = newView
}
Uso de loadView para criar UI programaticamente:
| Vantagens | Desvantagens |
|---|---|
| Controlo total sobre a criação de UI. | Mais código para escrever. |
| Capacidade de criar UI complexa e dinâmica. | É mais difícil avaliar visualmente a estrutura de UI. |
| Potencialmente melhor desempenho para UI muito complexa. | Menos intuitivo para colaboração na UI. |
Na maioria das aplicações modernas de iOS, a abordagem preferida é usar storyboards ou ficheiros .xib, onde loadView é chamado automaticamente para carregar a vista desses recursos. Sobrescrever loadView é uma abordagem de baixo nível, que deve ser usada apenas quando realmente necessário.