2009-05-18 12 views
3

Ich schaue mir dieses Widget an und es scheint ein UIPickerView zu sein, allerdings habe ich noch nichts von der iPhone SDK API gesehen, die nur horizontales Scrollen erlaubt. Meistens wird alles vertikal gemacht. Es scheint auch eine benutzerdefinierte Grafik um diesen Picker zu geben, also könnte es auch nicht sein.UIPickerView, der horizontal auf dem iPhone scrollt?

Ich bin neugierig, ob jemand in der Lage ist zu bestimmen, ob dies in der Tat ein UIPickerView oder vielleicht ein gehackter UIScrollView ist? Das Widget ist praktisch - und ich mag seine Verwendung. Ich fand es in einigen zufälligen Lebensmittel-App im App Store. Hier

ist der Screenshot:

enter image description here

Dank alle.

Antwort

5

Das ist total Brauch. Sie könnten tatsächlich etwas von der Art tun, die ein UIImageView und ein UIScrollView überlagert. Ich denke, es ist eine 100% ige Gewohnheit. Wie bei jeder Programmierung gibt es viele Möglichkeiten, jede einzelne Sache zu tun.

+1

Kannst du mir sagen, wie man das genau macht? –

1

Das sieht definitiv wie eine benutzerdefinierte Komponente aus. Ich würde vorschlagen, die .app-Datei von Ihrem iPhone zu entfernen, das Bundle zu öffnen und nachzusehen, ob es eine XIB-Datei für diese Schnittstelle gibt. Sie können Glück haben und die Komponente finden, die darin sitzt. Meine Vermutung ist, dass es eine Unterklasse von UIScrollView ist, aber natürlich kann ich mir dessen nicht sicher sein, ohne den Entwickler oder die Codebasis persönlich zu kennen.

0

Sie werden Picker an ihrem riesigen Bildschirmabdruck erkennen :-) Dies ist höchstwahrscheinlich ein horizontales UIScrollView mit einer Reihe von Etiketten mit fester Breite (oder Bildern). Das Problem besteht darin, dass die Lünette oben mit einem transparenten Center-Pass zur darunter liegenden Scroll-Ansicht zurückkehrt. Oder Sie können den einfachen Ausweg nehmen und vier Bildstreifen (für jede Kante) überlagern und die Mitte offen lassen, damit die Berührungsereignisse direkt zum Farbwechsler gehen.

Es ist ein benutzerdefiniertes Steuerelement, aber es ist wirklich nicht so schwer zu bauen.

2

This website hat Quellcode für einen Picker, der horizontal ausgerichtet ist, ohne Unterklasse zu bilden.

+0

Versuchte dies, sah zunächst gut aus, aber wenn Sie es in eine Bildlaufansicht legen, müssen Sie etwas Arbeit tun, um zu vermeiden, dass die Scrollview in die Klicks gelangt. Wahrscheinlich genug, um einen Delegaten zu verwenden, um zu verhindern, dass die Bildlaufansicht Klicks außerhalb des ursprünglichen Rahmens erhält. –

5

Wie ich kürzlich als Antwort auf this Frage geschrieben, eine Klasse für ein iOS horizontale Picker-Steuerelement (STHorizontalPicker) wurde gerade auf GitHub veröffentlicht. Es ist bei weitem nicht so ausgeklügelt wie UIPickerView, aber es bietet die grundlegende Funktionalität für die Auswahl numerischer Werte und die zugrunde liegende Grundlage ist wahrscheinlich ein guter Ausgangspunkt für das Hinzufügen von anspruchsvolleren Funktionen (es ist ein UIScrollView, das eine UIView mit mehreren CATextLayers für die Marker enthält).

Es wurde entwickelt, in UITableCellViews verwendet werden und sieht derzeit wie folgt aus: STHorizontalPicker