README - MarvelController

Este código é um exemplo de implementação de uma view controller chamada MarvelController que exibe uma lista de filmes da Marvel em uma coleção. Ele utiliza a biblioteca UIKit para criar a interface do usuário.

Funcionalidades

  • Exibe uma coleção de filmes da Marvel.
  • Permite interagir com a coleção através de seleção de itens.
  • Carrega os dados dos filmes de uma API.

Como usar

  • Importe o framework UIKit no seu projeto.
  • Crie uma instância da classe MarvelController.
  • Adicione a instância criada à hierarquia de views do seu aplicativo.
  • A interface do usuário será exibida, com uma coleção de filmes da Marvel.

Detalhes de implementação

Propriedades

-api: Array de objetos MovieData, que armazena os dados dos filmes da Marvel carregados da API.

Método viewDidLoad()

  • Configura a aparência da view controller, definindo a cor de fundo da view e ocultando o botão de voltar.
  • Configura a coleção e o botão, adicionando-os à hierarquia de views.
  • Define o data source e o delegate da coleção.
  • Registra a classe ProfileCell como a célula reutilizável da coleção.

Métodos setupViews() e setupLayouts()

  • Configuram as views da interface e suas restrições de layout.

Método startApi()

  • Realiza a chamada à API MarvelApi.serviceApi() para obter os dados dos filmes da Marvel.
  • Atualiza a propriedade api com os dados retornados da API.
  • Recarrega a coleção na main thread.

Método buttonTapped()

Realiza a mesma ação do método startApi(), chamando a API para atualizar os dados e recarregar a coleção.

Extensão UICollectionViewDataSource e UICollectionViewDelegateFlowLayout

  • Implementam os métodos necessários para configurar a coleção e suas células.
  • O método numberOfItemsInSection retorna o número de itens na coleção, baseado no tamanho do array api.
  • O método cellForItemAt configura as células da coleção com os dados dos filmes.
  • O método layout define as margens e o espaçamento entre as células.
  • O método didSelectItemAt é chamado quando um item da coleção é selecionado, apresentando uma view chamada AnotherMarvel com o título do filme selecionado.
  • O método sizeForItemAt define o tamanho das células da coleção.