section - ios collection view header
¿Cómo agrego un título de sección en UICollectionView? (3)
De la respuesta de @ david72
Necesitas realizar las siguientes cosas:
- Habilitar la vista de encabezado / pie de sección en el guión gráfico.
- Implementar
collectionView:viewForSupplementaryElementOfKind
método.
Para más detalles ver here
Necesito una etiqueta encima de cada sección en mi Vista de Colección. He intentado simplemente arrastrar una etiqueta a mi espacio de encabezado sobre mi celda prototipo, pero cada vez que ejecuto la aplicación, la etiqueta no es visible.
¿Alguna ayuda?
Para agregar la etiqueta personalizada arriba de cada sección en UICollectionView, siga los pasos a continuación
- Habilitar el encabezado de la sección en UICollectionViewCell
- Agregar un nuevo archivo de tipo UICollectionReusableView
- En el guión gráfico, cambie la clase de encabezado de sección en UICollectionViewCell al archivo recién agregado del tipo UICollectionReusableView.
- Agregar una etiqueta en el encabezado de sección de UICollectionViewCell en el guión gráfico
Conecte la etiqueta en el encabezado de la sección al archivo UICollectionReusableView
class SectionHeader: UICollectionReusableView { @IBOutlet weak var sectionHeaderlabel: UILabel! }
En el ViewController agrega el siguiente código
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView { if let sectionHeader = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "SectionHeader", for: indexPath) as? SectionHeader{ sectionHeader.sectionHeaderlabel.text = "Section /(indexPath.section)" return sectionHeader } return UICollectionReusableView() }
Aquí "SectionHeader" es el nombre del archivo agregado al tipo UICollectionReusableView
Implemente collectionView:viewForSupplementaryElementOfKind:atIndexPath:
y suministre un UICollectionElementKindSectionHeader que contenga su etiqueta. Si este es un diseño de flujo, asegúrese de establecer también headerReferenceSize
o no verá nada.