Sobes.tech
Middle+

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:

  1. Criar a vista raiz (view) para o controlador.
  2. 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.