2017-10-18 15 views
0

une petite question pour l'un de vous qui pourrait avoir une idée:UICollectionView _createPreparedCellForItemAtIndexPath: withLayoutAttributes: applyAttributes: et viewWillAppear: pour

je rencontre récemment un bogue dans le de mon application, et qui ont soulevé une petite question.

Le bug a été provoqué par un morceau de code essayant d'accéder à un tableau pas encore défini. Le bizarre buisness ici était que le même code fonctionnait absolument bien sur un iPad Air, et s'est écrasé sur un iPad Pro.

En effet, j'essayais d'accéder au tableau dans la méthode collectionView:cellForItemAtIndexPath: de mon contrôleur, et le tableau a été initialisé dans la méthode viewWillAppear: du même contrôleur.

Dans tout appareil que j'ai essayé, sauf sur l'iPad Pro, la méthode collectionView:cellForItemAtIndexPath: a toujours été appelée après la viewWillAppear:, mais sur l'iPad Pro, c'est l'inverse.

J'ai facilement résolu le problème, mais je me demande toujours pourquoi l'iPad Pro a un cycle différent de l'autre. Quelqu'un at-il une idée à ce sujet?

(je suis sur Objective-C, iOS 11.0)

Répondre

0

Modifier la CollectionView: méthode cellForItemAtIndexPath pour des conditions comme suit

if (array has data || data is downloading) { show activity indicator } else { show data }

Recharger vue de collection lorsque les données des charges

+0

Ouais, merci, comme je l'ai dit dans le post, je l'ai déjà réparé, la vraie question ici est pourquoi la commande est différente dans différents appareils. – JeanBagarre

+0

Pas sûr à ce sujet monsieur. @JeanBagarre – ahmed

+0

Vous n'êtes pas sûr de ce que @ahmed? – JeanBagarre