Wie erstellt man ein kreisförmiges UIPickerView (iPhone / iPad)?
Ich habe einen Blick in diese Frage viel aber ich bin noch unklar, ob es möglich ist oder nicht. Im wesentlichen, was ich will zu tun ist, erstellen Sie eine UIPickerView
ist kontinuierlich in dem Sinne, dass Sie können es drehen, für immer, und Sie wird nie erreichen das Ende (da der Letzte Wert wird gefolgt von dem ersten Wert).
Ich hatte einen Blick rund um online-und es scheint eine Vielzahl von hacks, um den gewünschten Effekt erzielen. Jedoch sind viele dieser Lösungen scheinen erhöhen die Anzahl der Zeilen in der UIPickerView
trick, um den Benutzer zu denken, die UIPickerView
ist stetig (aber in Wirklichkeit, wenn Sie gehalten, scrollen Sie würden schließlich das Ende zu erreichen).
Was ich bin nach ist ein Weg der Schaffung einer UIPickerView, dass ist wirklich unendlich in dem Sinne, dass Sie nie das Ende erreichen wenn Sie halten Sie scrollen für Tage, Wochen, Monate oder Jahre. Ich habe nichts dagegen zu viel, wenn die Lösung ist ein hack, da verstehe ich, dass Apple nicht den Weg der Verwirklichung der Effekt noch.
Bitte kann jemand raten, auf eine Art und Weise, dies zu tun (oder zeigen Sie mich in die richtige Richtung zumindest)?
InformationsquelleAutor der Frage The Crazy Chimp | 2012-05-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube wirklich, dass die nur hack Sie tun können, mit einheimischen UIPickerView ist hier beschrieben:
Wie machen Sie eine UIPickerView-Komponente wrap-around?
Den anderen Weg machen, echt geschlungen-picker zu implementieren, die es von sich selbst.
Sah ich pickers, die umgesetzt wurden mit cocos2d, das ist OpenGL-basiert. Ich denke, Sie können versuchen, es zu tun mit UIKit, wenn Sie wirklich brauchen, um.
Oder vergiss es einfach und machen Sie eine Farbauswahl mit NSIntegerMax Zeilen mit wiederholbaren Inhalten. Ich denke, dass niemand dreht es bis zum Ende.
InformationsquelleAutor der Antwort Morion
Finden Sie die benutzerdefinierte
UIPickerView
- Klasse, die funktioniert sehr gut und ist sehr einfach zu implementierenhier
InformationsquelleAutor der Antwort Animesh
Es ist möglich,. Hier ist, wie Sie es tun können. Ersten setup ein timer. Nehmen wir an
int maxNumber
ist eine Instanz-variable einen beliebigen Wert.In der timer-Feuer-Methode prüfen, ob einer der 'edge' Ansicht der uipickerview zeigen.
Hinweis: dies funktioniert, weil
[self.infinitePickerView viewForRow:i forComponent:0];
gibt einen UIView nur, wenn es sichtbar ist.Natürlich Ihre
UIPickerViewDelegate
müssen, verwenden Sie so etwas wieHoffe, das funktioniert!! 🙂 Viel Glück!
InformationsquelleAutor der Antwort clearwater82
Es ist nicht eine native picker, wraps (nicht wie von iOS7.1 eh.) Sie können fake diese durch etwas entlang diesen Linien:
Haben Sie zu zwicken und passen Sie an Ihre Bedürfnisse anzupassen, natürlich, aber dies ist die grundlegende Kern von ihm.
Glück!
InformationsquelleAutor der Antwort Olie
Hm.. ich habe auf der Suche um, und es gibt ein paar links zu ein paar Möglichkeiten, die hervorragendsten Wesen dieser: Die Missbräuchliche Pickerviewdie grundlegende Idee, dass Sie füllen Sie die pickerview mit 3 Sätze von Ihren Daten sowie den Beginn und die Mitte gesetzt. Wenn der Benutzer scrollt auf die Mitte von entweder der oben oder unten setzt, legen Sie die Zeile Wert zurück, auf den Mitte der Mitte gesetzt! Es scheint mehr echt, dann eine wirklich lange Liste, erstellen Sie die illusion von Unendlichkeit. Diese Lösung ist die effektivste und einfach zu lösen, die unendliche pickerview problem! Hoffe, dies geholfen!
InformationsquelleAutor der Antwort wayway
Scheint es mir, die Lösungen erfordern große Mengen an Daten gefüllt werden, die in der pickerView sind verschwenderisch. Die folgende Lösung verwendet smarts statt Speicher.
Nur die Zeilen, die aufgefüllt werden müssen, sind die Zeilen in der Ansicht angezeigt, und die Zeile, die unmittelbar vor der ersten und der Zeile unmittelbar nach der letzten. Wenn der Benutzer blättert eine Komponente, pickerView:titleForRow:forComponent: heißt für jede Zeile, die Schriftrollen durch.
Also die Lösung ist zum aktualisieren der Daten in pickerView:titleForRow:forComponent: und dann rufen Sie die entsprechende Methode, um die Daten neu laden, so dass es ist es, wenn die pickerview Schriftrollen nur noch ein tick.
InformationsquelleAutor der Antwort Victor Engel
Ich weiß, es ist eine alte Frage, aber ich habe nur gefunden, wie ich es bin, es umzusetzen in mein eigenes Projekt.
Verwenden Sie einfach Morion Methode, eine große Anzahl von Elementen mit sich wiederholenden Inhalt, dann jedes mal, es bewegt sich nicht mehr, zurücksetzen der Reihe. Nur so jemand wird nie herausfinden, Sie haben betrogen, ist, wenn Sie ständig scrollen, ohne eine Pause, bis es anhält, nie Aufruf der didSelectRow Funktion. Es würde einige Hingabe!
Unabhängig davon, wie Sie es tun, es scheint mir, dass es geht, zu fühlen, ein bisschen hacky, & muss dies der einfachste hack...
InformationsquelleAutor der Antwort SomaMan
Ich habe eine zyklische tableView basierend auf
UIScrollView
. Und auf dieser Basis tableView, ich re-implementierenUIPickerView
. Sie könnten daran interessiert sein. Und mit diesem picker view hat alle die Funktion, dieUIPickerView
auf, sondern gibt auch viele neue Funktionen und benutzerdefinierte diesem picker Sicht viel einfacher.https://github.com/danleechina/DLPickerView
Und sich bewusst sein, dass diese DLPickerView zyklisch scrollen ist wirklich scrollen zyklisch. Alle die Magie passiert ist, weil von einer anderen Klasse
DLTableView
.InformationsquelleAutor der Antwort Dan Lee
Ich verwendet pickerView Auswahl zum erstellen einer Kreisbahn:
InformationsquelleAutor der Antwort Atka
Eine sehr einfache Lösung, die machen u denke, es ist kein Ende der picker-Ansicht durch skalieren der Reihe und machen E-Modul wählen die entsprechende Element aus dem array
InformationsquelleAutor der Antwort Torped