1
resposta

Espaço abaixo entre o botão de voltar e o titulo do filme

Fazendo a tela percebi que colocando as constraints corretas existe um espaçamento bem grande entre o botão de voltar e o titulo do filme que criamos com UILabel. Sinto que esse espaçamento é reservado para caso nosso appBar tivesse um titulo, não sei se é verdade. Tive dificuldade em achar como remover esse espaçamento, existe alguma forma ou é um padrão do próprio IOS ter esses espaçamentos?

1 resposta

Oi, Pedro! Como vai?

O espaçamento que você mencionou provavelmente está relacionado à safe area do iOS. Esse espaço é reservado para garantir que os elementos não fiquem ocultos sob a navigation bar ou status bar. É um comportamento padrão do sistema, mas você pode ajustar isso de forma controlada. Por exemplo, o espaçamento entre o botão de voltar e o título pode ser ajustado diretamente nas constraints:

private func setupConstraints() {
    NSLayoutConstraint.activate([
        titleLabel.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 8.0), // Reduzindo o espaçamento
        titleLabel.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -16.0),
        titleLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16.0),
        
        userRatingLabel.topAnchor.constraint(equalTo: posterImageView.bottomAnchor, constant: 32.0),
        userRatingLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor),
        
        posterImageView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
        posterImageView.widthAnchor.constraint(equalToConstant: 192.0),
        posterImageView.heightAnchor.constraint(equalToConstant: 264.0),
        posterImageView.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: 32.0),
        
        synopsisLabel.topAnchor.constraint(equalTo: userRatingLabel.bottomAnchor, constant: 32.0),
        synopsisLabel.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor, constant: -16.0),
        synopsisLabel.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor, constant: 16.0),
    ])
}

Aqui a constante 8.0 no titleLabel.topAnchor.constraint reduz o espaçamento entre o título e o safe area. Se quiser eliminar o uso do safe area, substitua view.safeAreaLayoutGuide.topAnchor por view.topAnchor. Porém, isso pode causar sobreposição em alguns dispositivos, então não é tão indicado.

Para conhecer mais sobre o safe area, recomendo a leitura da documentação.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada :)

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!