2009-07-27 14 views
2

Ich arbeite an einer Fotogalerie App. Die Root-Ansicht ist ein Navigationscontroller, der den Benutzer zur Miniaturansicht bringt. Durch Tippen auf ein beliebiges Vorschaubild gelangt der Benutzer zu PhotoView, wo das angetippte Bild im Vollbildmodus angezeigt wird.UIScrollView App in Crashing Gerät aber läuft perfekt im Simulator

Unten ist das, was ich in meinem PhotoViewController getan habe:

Der Ansatz ziemlich ähnlich das ScrollingMadness Projekt, das ich bei Github gefunden.

Ich initialisiere ein UIScrollView und füge es als Unteransicht in die Ansicht meines View-Controllers ein. Legen Sie einige grundlegende Eigenschaften von UIScrollView fest. Fügen Sie Bilder zu UIImageViews hinzu (5 in Zahlen). Fügen Sie all diese imageViews als Unteransicht zu UIScrollView hinzu. Wenn der Zoomvorgang für ein Bild ausgeführt wird, werden alle Bilduntersichten außer der aktuellen aus der Bildlaufansicht entfernt. Wenn das Bild auf den minimalen Maßstab verkleinert wird, werden alle Bilder dem UIScrollView hinzugefügt.

Wie im Beispielcode von Apple erläutert, verwende ich TapDetectingImageView Delegate, um die ImageViews zu erstellen und Berührungsereignisse zu behandeln.

Wenn ich die App starte, funktioniert alles im Simulator. Keine Probleme. Aber wenn ich die App im Gerät starte, stürzt es ab, nachdem ich zum 3. oder 4. Bild gescrollt habe. Während des Debugging habe ich festgestellt, dass die didReceiveMemory-Warnung aufgerufen wird, nachdem ich zum 3. oder 4. Bild geblättert habe. Ich starte die App mit Instrumenten. Die Objektzuordnungen zeigen beim Absturz nur Zuordnungsstufen von 1,5 bis 2 MB. Ich glaube, die Speichernutzung auf diesem Niveau ist sehr normal ... oder?

Jeder, der dies schon einmal erlebt hat ODER irgendeinen Input darüber, wie ich ihn loswerden kann ... wäre zu dieser Zeit die ganze Hilfe, die ich in der Welt brauche.

Lassen Sie mich wissen, falls Sie weitere Informationen benötigen.

PS> Seine frustrierend die ganze App perfekt in Simulator zu sehen, aber in dem Gerät abstürzt :(

Antwort

2

Es abstürzt, weil seine aus dem Speicher ausgeführt wird, eine Sache, die Sie überprüfen sollten, ist die Größe der Bilder, sind Sie wählen das Bild aus der Foto-Bibliothek ohne Bearbeitung, manchmal wird dies Ihnen Bilder einer Auflösung von 1600x1400 geben, die ziemlich einfach nur das Handy zum Absturz bringen, weil es nicht genügend Speicher hat, dafür sollten Sie nur Ihre Bilder auf kleinere verkleinern. Ein anderes Problem, das es verursachen könnte, ist, dass Sie zu viele Bilder auf einmal laden (ich denke nicht, obwohl), wenn Sie die Bildlaufansicht verwenden, um ein Bildlauf ähnlich der Fotoapplikation auf dem Iphone zu haben, dann sollten Sie nur müssen Laden Sie 3 Bilder gleichzeitig, und Sie können auch nicht auf diese Bilder zugreifen e Bilder richtig, wenn Sie zoomen. Ich weiß nicht, ob Sie versuchen, eine ähnliche Funktionalität zum Scrollen von Bildern in der Foto-App auf dem iPhone zu erreichen, wenn Sie sich das Beispielprojekt PageControl ansehen, sie veranschaulichen das ziemlich gut dort.

+0

Daniel - du bist Pixel perfekt richtig !!! Die Bilder waren 1200X1600. Ich zerkleinere sie auf 320x480, das funktioniert wie ein Zauber. Die Anzahl der Bilder, die ich gerade benutzt habe, ist 5. Aber irgendwann werde ich 20 Bilder verwenden müssen. Wenn Sie bitte vorschlagen könnten, wie Sie faule Bild-Ansichten laden oder 3 Bilder gleichzeitig laden, wie Sie erwähnten - wäre eine große Hilfe. Das Herauszoomen wurde erledigt. Nichts geht rein und raus aus der Erinnerung. Es ist nur das In-Out-Zeug auf Subview für den Inhalt bereits im Speicher. Danke für Ihre Hilfe! –

+0

Sehen Sie sich das Beispielprojekt PageControl in der Apple iPhone Entwickler-Website an, es hat ein gutes Beispiel dafür, wie Sie erreichen können, was Sie wollen – Daniel

Verwandte Themen