3 votes

Problèmes avec la carte derrière UIView, similaire au détail des lieux de FourSquare

J'utilise actuellement cette excellente solution de @yonel pour faire quelque chose de similaire à la page détaillée des lieux de FourSquare. Dans mon storyboard, j'ai ceci :

enter image description here

Le problème est le suivant : comme le défilement est un peu lent, lorsque je fais défiler rapidement, j'obtiens un message "Received memory warning." dans ma console. Ce qui est curieux, c'est que si je supprime toutes les étiquettes et tous les boutons de la fenêtre UIView (juste en dessous du Map View ), tout fonctionne bien.

Une idée de ce qui pourrait clocher ?

2voto

Troy Alford Points 8676

Comme les posters précédents l'ont mentionné, il est difficile de vous donner des informations fiables sans voir le code de votre projet - et je suis conscient que vous avez déjà trouvé une solution viable. Cependant, au cas où d'autres utilisateurs trouveraient cette question avec des réponses similaires :

La nature du message d'erreur suggère que vous avez probablement eu une sorte de fuite de mémoire dans votre application. La meilleure façon de commencer à déboguer ce type de problème est d'utiliser les outils d'analyse de la mémoire qui se trouvent dans le module de gestion de la mémoire. Instruments.app . Pour obtenir des informations détaillées sur la manière de procéder, consultez le site suivant ce lien sur le site des développeurs Apple.

En particulier si certains des éléments qui défilent à l'écran ou hors de l'écran sont associés à des informations graphiques (images d'arrière-plan, etc.), la destruction des éléments hors écran peut contribuer à améliorer les performances. Bien entendu, vous devrez alors recréer les éléments en question lorsqu'ils reviendront à l'écran.

Si ce qui précède ne vous aide pas, jetez un coup d'œil à certaines des questions/réponses suivantes, qui donnent un aperçu d'autres problèmes où cette erreur se produit. Peut-être que votre problème est/était lié :

1voto

Paulo Rodrigues Points 2026

Malheureusement, après des jours de recherche, je n'ai pas trouvé de solution. Mais j'ai réussi à trouver quelque chose pour remplacer ce que j'ai, en utilisant UITableView .

J'ai trouvé ce ParallelView pour UITableView : https://github.com/zhigang1992/ZGParallelView

Merci pour toutes les réponses.

0voto

Shaps Points 91

Je ne suis pas familier avec la vue détaillée des lieux dans Foursquare, mais je ne pense pas que nous puissions vous aider sans voir de code.

En un coup d'oeil, je remarque qu'il y a une autre vue que tu n'as pas développée. Peut-être qu'il y a quelque chose de lourd là-dedans, mais encore une fois, je pense que vous devez montrer du code pour ces vues, parce qu'il est plus probable que vous exécutez une tâche gourmande en mémoire et que cela cause le problème.

De préférence, vous pourriez aussi utiliser la méthode scrollViewDidScroll :) Je ferai de mon mieux pour jeter un coup d'œil dès que vous aurez posté quelque chose. Ou vous pouvez me contacter directement avec un exemple de code si vous ne voulez pas le poster ici publiquement.

0voto

Lithu T.V Points 10117

J'ai reçu un avertissement concernant la mémoire, cet avertissement s'est affiché dans la console une fois lorsque j'ai testé l'appareil. Mais lorsque j'ai fermé les applications inactives, l'erreur a disparu. Donc, essayez de supprimer les applications qui tournent en arrière-plan et réessayez. Si cela existe, je pense que le problème est que lorsque vous utilisez le défilement, il y a une sorte de fuite de mémoire des tuiles de la carte ou autre. Utilisez des instruments et analysez s'il y a des fuites de mémoire.

Cela peut vous aider

gestion-de-la-mémoire-en-objectif-c-tutoriel

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X