2017-05-29 1 views
10

À mon avis, j'ai un UITableView qui contient des cellules avec horizontal UICollectionView à l'intérieur. Le problème est que parfois UICollectionViewCell ne sont pas rendus sur le périphérique/simulateur. En même temps, je peux voir ces cellules dans la vue hiérarchique Debugger:UICollectionView ne rend pas les cellules

Ce que je vois dans la vue hiérarchique Debugger: enter image description here

Ce que je vois sur un appareil: enter image description here

Comme vous pouvez voyez, les cellules (avec des images) existent et ont les cadres et le contenu corrects (prouvés par le débogueur View Hierarchy). Néanmoins, ils ne sont pas rendus sur l'appareil/simulateur pour une raison quelconque. Quelle pourrait être la cause de cela et comment pourrais-je le réparer?

UPD: un autre exemple avec "3D" vue et bug sur une cellule, mais pas sur l'autre

capture d'écran de l'appareil

: enter image description here

vue débogueur de la hiérarchie: enter image description here

+0

avez-vous ajouté des délégués et des données provenant du storyboard –

+0

@HimanshuMoradiya bien sûr que j'ai fait, avez-vous lu toute la question? –

+0

oui vous avez un problème avec lorsque vous exécutez l'application en mode débogage vous avez votre cellule mais quand il fonctionne normalement, il ne peut pas afficher dans simulor droite –

Répondre

0

Il est avéré que mon problème particulier est lié à UICollectionView assertion error on stale data parce que parfois mentionné accident se produit. Jouer autour de [collectionViewLayout invalidateLayout] J'ai finalement résolu cela.

Juste pour enregistrer ce qui était pas la cause (et ce que vous devriez vérifier si face au même problème):

  1. vérifier si vous mettez à jour des vues dans le thread principal ne
  2. vérifier si toutes les constantes autolayout sont correctement définis et ne pas entrer en conflit
  3. vérifier que vos sont calculés correctement

de tailles de contenu intrinsèque des vues personnalisées Si aucune de ce qui précède est la cause de la question essayer invalidateLayout quelque part autour de reloadData ou à l'intérieur de layoutSubviews ou une méthode similaire.

+0

Note sur la prime: la question de savoir pourquoi les vues sont visibles dans le débogueur de la hiérarchie de la vue mais pas sur un périphérique ou un simulateur est toujours ouverte. Ceux qui fournissent une réponse seront récompensés. –