2014-08-28 3 views
5

Dopo (con successo) chiamandomessaggio di errore UICollectionViewLayout 'bloccato'

__weak typeof(self) wself = self; 
[self.collectionView performBatchUpdates:^{ 
    [wself.collectionView.collectionViewLayout invalidateLayout]; 
    [wself.collectionView setCollectionViewLayout:self.layoutDeletion animated:YES]; 
     } completion:nil]; 

ricevo il seguente messaggio di errore:
trying to load collection view layout data when layout is locked

l'operazione funziona bene, tranne che un particolare UICollectionViewCell non caricando i suoi subviews.
Non ho mai visto prima questo messaggio di errore, incluso Google. Qualche idea su cosa potrebbe causare questo?

risposta

7

L'errore viene generato chiamando lo setCollectionViewLayout entro performBatchUpdates. Non è chiaro se questo è un comportamento previsto (un errore di codifica) o un bug in iOS. È possibile segnalare il problema ad Apple, ma nel frattempo si dovrebbe fare il refactoring per eseguire la modifica del layout senza aggiornamenti batch. È sempre possibile utilizzare il gestore di completamento per eseguire eventuali aggiornamenti aggiuntivi alla vista raccolta.

+1

Per me con iOS 9 per eliminare gli avvertimenti dovevo chiamare 'setCollectionViewLayout' nel blocco di completamento. –

0

Ho avuto lo stesso problema su iOS 8 ... In realtà, ho appena tolto le performBatchUpdates: metodo e tutto ha funzionato bene per me!