Ich arbeite an einer iPad App, mit der der Benutzer durch eine Reihe von Bildern scrollen kann (in der Regel etwa 20 JPG-Dateien in einer einzigen horizontalen Bildlaufansicht). Die Dateigrößen liegen jeweils bei etwa 200 kb. Die Bilder werden als die "Hintergrund" -Eigenschaft eines UIButton festgelegt, weil ich dem Benutzer erlauben wollte, auf die Schaltfläche zu klicken, um das Bild zu speichern. Jedes Mal, wenn ich die App starte, stürzt es nach dem Scrollen für eine Weile ab. Wenn Sie nicht blättern, verhält es sich normal. Ich habe die App mit den Performance-Tools ausgeführt und keine Lecks gefunden.iPhone Memory Warning Probleme mit UIScrollView
Ich bekomme eine "Level = 1" Speicherwarnung, kurz bevor die App abstürzt. Ich hatte es mit ungefähr 8 Bildern in der Scrollview laufen und hatte nie ein Problem. Ich weiß also, dass es etwas mit dem scrollView und den Bildern/Buttons zu tun hat. In der „viewDidLoad“ Methode, ich habe einfach den im Anschluss an die Scroll einzurichten und verknüpfen es dann im Interface Builder:
[scrollView setContentSize:CGSizeMake(5722, 340)];
[scrollView setScrollEnabled:YES];
[scrollView setDelaysContentTouches:YES];
Alle Ideen, wie diese Arbeit zu bekommen? Ich habe die Bilder direkt zur Schaltfläche im Interface Builder hinzugefügt. Wäre es hilfreich, wenn ich das Hintergrundbild lösche und stattdessen die Hintergründe in der Methode "viewDidLoad" einstelle? Jede Hilfe wäre willkommen.
Danke Jer. Ich habe mir deinen Code angeschaut, aber ehrlich gesagt, ich habe keine Ahnung, wo ich anfangen soll. Dies ist meine erste iPad/iPhone App (obwohl ich seit einiger Zeit als Nebenprojekt daran arbeite), also lerne ich das gerade, während ich gehe. Kopiere und übertrage ich den Code in meine .h und .m Dateien oder erstelle ich neue Dateien mit deinem Code? Ich habe nichts mit Tischen gemacht, das ist alles neues, was ich lernen kann. Danke für Ihre Hilfe. – Brian
Ok, zuerst sollten Sie sich mit Tabellenansichten vertraut machen. Sie werden überall verwendet, und Sie werden sie in anderen Bereichen oft verwenden. Die große Sache bei der Wiederverwendung von Zellen, die Sie verstehen müssen, ist, dass Sie Ihre Zelle löschen müssen, nachdem sie wiederverwendet wurde, oder wenn Sie nicht wiederverwendet werden können, vergeben Sie eine neue. Wenn Sie z. B. Bilder anzeigen, werden diese nur so lange im Speicher gespeichert, dass sie sofort benötigt werden: Die Bilder auf dem Bildschirm und eine Seite des scrollbaren Bereichs sind für Benutzer, die scrollen, "vorinstalliert". Der Rest ist nicht geladen, also verbrauchen Sie keinen Speicher. – jer
Auch wird die WWDC-Sitzung 104 Ihnen helfen zu verstehen, wie die Wiederverwendung von Zellen implementiert wird. – jer