Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
11.22 Rezept: Einen Picker mit Ansichten verwenden 11.22 Rezept: Einen Picker mit Ansichten verwenden Picker-Ansichten funktionieren genauso gut mit Ansichten wie mit Titeln. Abbildung 11.20 zeigt eine Picker-Ansicht, die Spielkartenfarben darstellt. Diese Bilder gibt die Datenquellenmethode pickerView: viewForRow: forComponent: reusingView: zurück. Dabei können Sie jede Form von Ansicht verwenden, z. B. Labels, Schieberegler, Schaltflächen usw. In dem Beispiel von Rezept 11.22 wird eine einfache UIImageView für die Darstellung der der vier Spielkartensymbole verwendet. Abbildung 11.20: Diese UIPickerView zeigt eine Folge von Bildern mit Spielkartensymbolen. Die Benutzer können eine Kombination aus drei Elementen auswählen. Picker-Ansichten nutzen ein einfaches Verfahren zur Wiederverwendung, bei dem die zur mögli- chen Wiederverwendung bereitgestellten Ansichten zwischengespeichert werden. Wenn der letzte Parameter der Callback-Methode nicht nil ist, kann die Ansicht durch Aktualisierung ihrer Einstel- lungen oder Inhalte wiederverwendet werden. Der Code in Rezept 11.22 sucht nach einer solchen Ansicht und weist nur dann eine neue Bildansicht zu, wenn er keine findet. DieHöhemussnicht derHöheder tatsächlichenAnsicht entsprechen.WennSie pickerView:rowHeight ForComponent: implementieren, können Sie damit die Zeilenhöhe der einzelnen Komponenten fest- legen. In Rezept 11.22 wird eine Zeilenhöhe von 120 Pixeln verwendet, was genügend Platz für die ein- zelnen Bilder lässt und die Illusion hervorruft, dass der Picker nicht wie in Rezept 11.21 einen Anfang und ein Ende hat, sondern endlos durchlaufen kann. Beachten Sie die große Anzahl der Zeilen, nämlich eine Million. Der Grund für diese hohe Zahl be- steht darin, richtige Zylinder zu simulieren. Normalerweise haben Picker-Ansichten ein erstes und ein letztes Element, bei denen der Drehvorgang endet. In diesem Rezept wird ein anderer Ansatz verfolgt, um so zu tun, als wären die Komponenten echte Zylinder, bei denen das letzte Element wieder an das erste angrenzt. 573