Ich möchte einige Bilder als Thumbnail in View-Controller zeigen, aber ich weiß nicht, wie dies zu tun. Kann jemand bitte geben Sie mir einige Ideen oder Beispielcode, wenn möglich.
Antworten
Zu viele Anzeigen?Fragen Sie, wie man Miniaturansichten aus größeren Bildern erstellt, oder wie man einen View-Controller baut, der sie schön anzeigt?
Aufbau eines View-Controllers:
Sie könnten verwenden TTPhotoViewController
von das Projekt Three20 ( Beschreibung ), die ähnlich wie die integrierte Kamerarolle des iPhones funktioniert, um Bilder anzuzeigen.
Sie können sich ansehen die Scrolling
Beispielcode von Apfel, genannt in diese Frage zur Verwendung für Miniaturansichten .
Wenn Sie ein solches Gerät selbst bauen wollen, können Sie ein GridView
von die moriarty-bibliothek entweder als großes Gitter in einer UIScrollView
oder auf einer effizienteren zeilenweisen Basis in einer UITableView
. Es gibt eine frühere Frage zu optimiertes Laden von Bildern in einer UIScrollView
.
Erstellen von Miniaturbildern aus größeren Bildern:
Der einfachste Weg, ein Bild zu verkleinern, besteht darin, es einfach in einer UIImageView
mit einem Rahmen, der auf die gewünschte Größe eingestellt ist - er wird für Sie skaliert.
Wenn Sie eine Miniaturansicht speichern möchten oder sich um die Speichernutzung sorgen, können Sie eine hart skalierte Version erstellen. Der folgende Beispielcode stammt aus dieser Blogbeitrag und kann hinzugefügt werden zu UIImage
als eine Kategorie-Methode:
- (UIImage*) imageScaledToSize: (CGSize) newSize {
UIGraphicsBeginImageContext(newSize);
[self drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Zum Schluss noch eine frühere Frage zu Maskieren von runden Ecken in einem Bild ähnlich wie die App-Symbole auf dem Startbildschirm.
Hinzugefügt
Verwendung der integrierten Miniaturansicht eines Bildes:
Es gibt eine nette Funktion namens CGImageSourceCreateThumbnailAtIndex
das integrierte Miniaturansichten in bestimmten Bilddatenformaten versteht. Einige nützliche Codebeispiele hierfür finden Sie unter Erstellen eines Miniaturbildes aus einer Bildquelle en das Image I/O Programmierhandbuch von Apple.
Es gibt mehrere Probleme mit Miniaturansichten; vielleicht könnten Sie klären, welche Ihnen am meisten Sorgen bereiten?
-
So zeigen Sie eine kleinere Version eines vorhandenen Bildes an
-
Beschleunigung des Seitenwechsels durch Zwischenspeichern der Miniaturansichten (anstatt die Originale dynamisch zu verkleinern)
-
Wie kann man dem Benutzer erlauben, durch die Miniaturbilder zu blättern?
-
Wie synchronisiert man die Vorschaubilder mit den Originalen, falls die Bilder bearbeitet werden können oder der Benutzer sie ergänzen kann?