ios objective-c uicollectionview uicollectionviewlayout uicollectionreusableview

ios - ¿Cómo puedo probar si el encabezado UICollectionView se encuentra actualmente en la vista correcta?



objective-c uicollectionviewlayout (1)

Necesito saber si la vista suplementaria del encabezado UICollectionView está actualmente a la vista para forzar su actualización / actualización cuando se cambia una configuración / preferencia de la aplicación.

Si el encabezado no está a la vista, una vez desplazado, el encabezado se dibujará correctamente, pero ahora solo ocurre en la carga y si el usuario se desplaza fuera del encabezado, entonces vuelve.

Si el encabezado está a la vista, lo necesito para actualizar, pero realmente no quiero tener que volver a cargar toda la sección 0 cada vez que cambie esta configuración (solo cuando el encabezado esté a la vista ...).


Podría hacer algo así como mantener una propiedad cerca cuando la vista se descuelga. Luego cámbialo cuando desaparezca usando:

- (void)collectionView:(UICollectionView *)collectionView didEndDisplayingSupplementaryView:(UICollectionReusableView *)view forElementOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)indexPath;

Dependiendo de cómo quiera que se produzca la actualización, puede mantener un bool visible o iniciar un NSTimer cuando aparece y detener el temporizador cuando desaparece.

Lamentablemente, no parece que haya un método visibleSupplementaryViews.