ios - uitableviewcell - UIKit Dynamics en un UITableView
uitableview with multiple custom cells swift (2)
¿Puede agregar el efecto de celdas elásticas al desplazarse (como en la aplicación de Mensajes en iOS7) a un UITableView
? He visto ejemplos de ello trabajando en un UICollectionView
, pero no hay absolutamente nada para las vistas de tabla.
¿No es posible y debería cambiar cada vista de tabla a una vista de colección y rehacer todas las celdas?
En la sesión de la WWDC 2013 Explorando vistas de desplazamiento en iOS 7, se habla de cómo hacer este efecto con una vista de colección y UIKit Dynamics. Me imagino que es mucho más fácil hacerlo con una vista de colección que con una vista de tabla, ya que es más fácil colocar las celdas. Puede haber un código de ejemplo para acompañar la sesión.
Lamentablemente no.
Cada UICollectionView
tiene un objeto de diseño (una subclase UICollectionViewLayout
) que describe dónde debe ir cada celda en la vista de desplazamiento de la vista de colección y qué celdas son visibles en un CGRect determinado. UITableView
no tiene esto, por lo que sería mucho más difícil hacer algo que manipule la posición de sus celdas.
Además de animar objetos UIView
, UIKit Dynamics se puede usar para animar UICollectionViewLayoutAttributes
directamente, que es necesario para una clase de estilo UITableView
o UICollectionView
que tiene celdas reutilizables que pueden no estar todas en la pantalla, pero que aún serían parte de la "física". UIDynamicAnimator
métodos UIDynamicAnimator
, como layoutAttributesForCellAtIndexPath:
pueden utilizarse para completar su objeto de diseño.
No existe un objeto de diseño equivalente para un UITableView
ni un código equivalente de UIDynamicAnimator
para operar en celdas fuera de pantalla de UITableView
, es probable que sea mucho más fácil cambiar a un UICollectionView
si desea este comportamiento.