J'utilise un UICollectionView
avec une disposition personnalisée, mais j'ai des problèmes avec les cellules qui disparaissent après que je défile vers le bas et sauvegarder.Pourquoi mes UICollectionViewCells disparaissent-elles après le défilement?
Veuillez voir un video demonstration de mon édition. J'ai fait du googling et d'autres personnes ont des problèmes liés et je reconnais que c'est peut-être dû à la réutilisation des cellules, mais aucune des réponses que j'ai trouvées ailleurs ne m'a aidé.
Mes questions sont les suivantes:
Pourquoi est-ce qui se passe?
Comment puis-je empêcher cela de se produire?
Fait intéressant, une fois que je présente une UIViewController
et écartons, la question ne se produit plus. S'il vous plaît voir le video de cela en action.
REMARQUE: Ce bogue est présent depuis un certain temps (au moins depuis iOS 10 et n'a pas été corrigé dans iOS 11 bêta 1 non plus).
Modifier 1
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
switch (indexPath as NSIndexPath).row {
case 0:
// Speak Logo Cell
let speakLogoCell = collectionView.dequeueReusableCell(withReuseIdentifier: "SpeakLogoCell", for: indexPath) as! SpeakLogoCell
recordButton = speakLogoCell.recordButton
return speakLogoCell
case 1:
// Text Input Cell
let inputCell = collectionView.dequeueReusableCell(withReuseIdentifier: "InputCell", for: indexPath) as! InputCell
inputCell.inputTextView.delegate = self
inputTextView = inputCell.inputTextView
// Only restore input if launching and required.
if currentlyLaunching && UserDefaultsHelper.loadShouldRestoreInput() {
inputTextView!.text = UserDefaultsHelper.loadInput() ?? ""
}
return inputCell
case 2:... // Continues for all the other cells
1. iOS a supprimé la cellule afin d'économiser des ressources car elle n'était pas affichée et vous ne l'avez pas réinitialisée correctement. 2. Réinitialiser correctement la cellule. (Pensez-vous que nous sommes des magiciens et pouvons vraiment vous aider sans aucun * code * pertinent?) – idmean
Merci pour votre réponse et suggestion de poster du code pertinent. Je vais modifier ma question pour inclure la partie appropriée de la méthode cellForItem. S'il vous plaît laissez-moi savoir si vous voulez autre chose. –
Qu'est-ce que inputTextView? Où est-il stocké? –