objective c - UICollectionView: ¿Cómo definir un UICollectionViewLayout que permita el desplazamiento horizontal y vertical?
objective-c ios6 (5)
UICollectionViewFlowLayout
definitivamente no puede: "El diseño de la cuadrícula se desplaza solo por un eje, ya sea horizontal o verticalmente".
Es una subclase de UICollectionViewLayout
. Parece que podría crear su propia subclase de UICollectionViewLayout
y desplazarse en ambas direcciones.
¿Qué quiere decir con página, quiere hacer paginación como una vista de scrollview
? Me pregunto sobre el uso de UICollectionViewFlowLayout en un UICollectionView
para desplazamiento vertical, dentro de un UIScrollView
para desplazamiento horizontal.
Por el momento estoy tratando de crear un UICollectionView
, que debería mostrar una excel-like-spreadsheet
simple como excel-like-spreadsheet
, con rows
y columns
. Esta debería ser una tarea fácil con UICollectionViews
, creo. Y realmente me gustaría hacer la implementación en UICollectionView
, no en ningún grid framework
.
Pero en este momento estoy colgando un poco. Lo que descubrí es que, desafortunadamente, no puedo usar UICollectionViewDelegateFlowLayout
, porque esto solo permite el scrolling
en dirección horizontally
o vertically
. Pero necesito scrolling
en ambas direcciones.
Por lo tanto , tengo que usar UICollectionViewLayout
, pero para esto no encontré buenos ejemplos, cómo usarlo. ¿ UICollectionViewLayout
de ustedes tiene un ejemplo, cómo subclase un UICollectionViewLayout
para admitir rows
y columns
?
Gracias por adelantado.
Aquí hay dos buenos ejemplos de cómo implementar diseños personalizados.
He añadido un ejemplo de uso de un diseño personalizado para implementar una cuadrícula de desplazamiento horizontal y vertical simple aquí https://github.com/neildavis/MyCollectionView
Mi ejemplo usa PSTCollectionView porque necesitaba soporte para iOS 5, pero es compatible con API con UICollectionView incorporado. (En realidad, utiliza las clases de compatibilidad (PSUICollectionView, etc.) proporcionadas para asegurarse de que utiliza UICollectionView en iOS 6 y recurre a PSTCollectionView, etc. en iOS 5.) Simplemente elimine el prefijo ''PS'' para revertir a iOS 6 solo la implementación de UIKit .
Respuesta que no requiere una disección de 3 proyectos de muestra
En su subclase UICollectionViewLayout:
- Implementar
-(CGSize)[collectionViewContentSize]
y devolver un tamaño más grande en alto y ancho que el tamaño deUICollectionView
. (Accesible a través de:self.collectionView.frame.size
) - Calcule el diseño de su
UICollectionViewCell
dentro del tamaño del contenido en lugar del tamaño del marco.
Nota: Asegúrese de que el desplazamiento esté habilitado en UICollectionView. (Está activado por defecto)
Necesitaba algo similar. Creé un Custom CollectionViewLayout.
https://github.com/akashraje/BidirectionalCollectionViewLayout