Pregunta

Sé que UicollectreviewDelegateFlowayout es un protocolo mientras UicollectreviewFlowayout es una clase, y sé la diferencia entre un protocolo y una clase. Desde mi entendimiento, puedo tener una clase para seguir el protocolo UicollectViewDelegateFloyout para lograr el mismo efecto que tiene una clase heredada de UicollectionViewFlowayout. Llego a esta conclusión al encontrar tales relaciones entre el protocolo y la clase: Uicolectionviewdelegateflowayoyout ------------- uicollectionviewflowayout CollectiveView: Diseño: sizeforitematindexpath: ---- upsize CollectiveVIEW: Diseño: InsetForsectionAtIndex: ---- SectionInset - CollectiveView: DISEÑO: REFERENCIONES FORTEHEADERINSECTORIOS: - CabezaReferencia - CollectiveView: Disposición: ReferenciasForForForfooterinsección: - FootReReferenceSize

También lee lo siguiente en la referencia del protocolo: "Todos los métodos en este protocolo son opcionales. Si no implementa un método en particular, el delegado de diseño de flujo utiliza valores en sus propias propiedades para la información de espaciado adecuada" Por lo tanto, mi comprensión es: Si una colección tiene una propiedad de diseño y un delegadoflowloyout, el DelegadoFlowayout puede potencialmente sobrescribir algo. En otras palabras, puedo tener ambos y el protocolo tomará prioridad más alta. ¿DERECHO?

Entonces, ¿qué es la lógica detrás de inventar un protocolo y una clase que hace lo mismo?

¿Fue útil?

Solución

La clase de diseño de flujo es una especie de diseño de flujo "predeterminado" que funciona en muchas circunstancias, si no la mayoría de las circunstancias. Si necesita algo que UicollectreViewFlowayout no pueda manejar, puede subclase UicollectionViewLayout para proporcionar la funcionalidad agregada.

Los métodos delegados solo proporcionan una personalización limitada, a través de las llamadas del delegado, por la UicollectionViewFlowayo por defecto.

De los documentos ", el protocolo UicollectreviewDelegateFloyout define los métodos que le permiten coordinar con un objeto UicollectreviewFlowayout para implementar un diseño basado en la cuadrícula. Los métodos de este protocolo definen el tamaño de los elementos y el espaciado entre los elementos de la cuadrícula". < / p>

no hacen las mismas cosas; Se proporciona el protocolo para que le permita hacer algo adicional que el diseño de flujo sin los métodos delegados no se haga de forma predeterminada. El protocolo, en efecto, le da más "control". No tiene que usar los métodos delegados si no los necesita.

No hay "prioridad"; El protocolo es opcional. Por lo tanto, no usa el protocolo si no usa UicollectionViewFlowayout.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top