Pergunta

Eu sei que UICollectionViewDelateFlowlayout é um protocolo enquanto UICollectionViewFlowlayout é uma classe, e eu sei a diferença entre um protocolo e uma classe. Do meu entendimento, posso ter uma aula para seguir o protocolo UicollectionViewDelateFlowlayout para obter o mesmo efeito que tendo uma aula herdada do UICOLLectionViewFlowlayout. Eu alcanço essa conclusão, encontrando essas relações entre o protocolo e a classe: Uicollectionviewdelateflowlayout ------------- uicollectionViewFlowayout. CollectionView: Layout: SizeforitematIndexPath: ---- itens CollectionView: Layout: InsetForsectionAtIndex: ---- sectioninset - CollectionView: Layout: ReferênciasIlusForheaderInsection: - Headerreferencesce - CollectionView: Layout: ReferênciasIlusForfooterInsection: - PeakerEferencesce

Também li o seguinte na referência do Protocolo: "Todos os métodos neste protocolo são opcionais. Se você não implementar um método específico, o delegado de layout do fluxo usa valores em suas próprias propriedades para as informações de espaçamento apropriadas" Portanto, meu entendimento é: se uma coleçãoView tiver uma propriedade de layout e um delegadoflowlayout, o delegadoFlowlayout pode potencialmente substituir algo. Em outras palavras, posso ter ambos e o protocolo terá maior prioridade. Certo?

Então, qual é a lógica por trás inventando um protocolo e uma classe que faz a mesma coisa?

Foi útil?

Solução

A classe Layout de fluxo é uma espécie de layout de fluxo "padrão" que funciona em muitos, se não a maioria das circunstâncias. Se você precisar de algo que o UICollectionViewFlowout não pode manipular, você pode subclasse uicollectionviewlayout para fornecer a funcionalidade adicional.

Os métodos delegados fornecem alguma personalização limitada, através das chamadas delegadas, para o padrão UICOLLectionViewFlowlayout.

A partir dos docs ", o protocolo UICOLLectionViewDelateFlowlayout define os métodos que permitem coordenar com um objeto UICOLLectionViewFlowlayout para implementar um layout baseado em grade. Os métodos deste protocolo definem o tamanho dos itens e o espaçamento entre itens na grade". / p >.

Eles não fazem as mesmas coisas; O protocolo é fornecido para permitir que você faça algo extra que o layout de fluxo sem que os métodos delegados não façam por padrão. O protocolo, em vigor, oferece mais "controle". Você não precisa usar os métodos delegados se você não precisar deles.

Não há "prioridade"; O protocolo é opcional. Então, você não usa o protocolo se você não usa UICollectionViewFlowayout.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top