2017-05-18 3 views
1

Ich habe überall gesucht und es scheint kein klares Beispiel zu sein. Ich versuche, dies zu erreichen, wo das Textfeld als SearchBar fungiert dann würde der Benutzer in der Lage das Element hinzuzufügen: enter image description hereSuche mit UITextField

Am Beispiel scheint UI SearchBar und eine Tableview zu verwenden, wo es um die gefilterten Ergebnisse angezeigt werden. Aber es gibt kein reales Beispiel, das nur ein textField verwendet.

Meine andere Option ist, um zu versuchen, und nur eine Auto-Vervollständigung, wo es überprüft, ob das Zeichen, das eingegeben wird, entspricht eine Reihe von Daten, etwa wie folgt:

Gibt es klare Beispiele oder ein Tutorial ich folgen kann? Ich bin ziemlich neu im Programmieren, also würde ich es lieber in Swift machen.

Andere ähnliche Referenz:

http://www.iostutorialjunction.com/2017/04/integrate-search-functionality-in-ios-using-swift3.html

How to make UITextField behave like a UISearchBar in Swift?

https://www.raywenderlich.com/113772/uisearchcontroller-tutorial

http://www.matthewhsingleton.com/blog/2016/5/26/predictive-text-table-view-swift-version-of-ray-wenderlich

https://www.youtube.com/watch?v=YZ_S2GHFwW4

https://www.youtube.com/watch?v=XtiamBbL5QU&t=975s

Getting autocomplete to work in swift

https://github.com/EddyBorja/MLPAutoCompleteTextField

+0

Sie möchten eine Methode, die immer ausgeführt wird, wenn ein Text eingegeben wird? Und auf der Basis dieses Textes möchten Sie eine Zeichenfolge in Array richtig filtern? –

+0

@SyedQamarAbbas Richtig, siehe auch mein aktuelles Bild. – Chace

Antwort

1

Es gibt viele Möglichkeiten, um diese Aufgabe zu erfüllen. Sie können eine textField sowie eine UILabel genau dahinter platzieren. Und wenn Sie jedes Wort eingeben, ändern Sie einfach den Text des Etiketts. Stellen Sie die textColor des Labels auf hellgrau und Sie werden gut gehen. Um eine Methode festzulegen, die jedes Mal aufgerufen wird, wenn ein Benutzer etwas eingibt, verwenden Sie den folgenden Code.

//Below line will set a method to textFields value change event. 
searchTextField.addTarget(self, action: #selector(self.textIsChanging(textField:)), for: .editingChanged) 



func textIsChanging(textField: UITextField) { 

} 
+0

Danke für diese Antwort. Was meinst du mit "platziere ein textField genauso wie ein UILabel genau dahinter", hinter was. Auch in der Funktion textIsChanging (textField: UITextField) wird dies überprüft, ob die eingegebenen Daten einer Zeichenkette in einem Array entsprechen. – Chace

+0

Ja, das ist die Methode, bei der Sie prüfen, ob der eingegebene Text einer Zeichenfolge im Array entspricht oder nicht. Und zum Storyboard platzieren ein Label hinter UITextField. Geben Sie textField eine clearColor und beim Suchen einer Match-Zeichenfolge aktualisieren Sie einfach den Text des uilabel und nicht den textField-Text. Dies gibt Ihnen den Effekt, den Sie in Ihnen über Bild –

+0

möchten Vielen Dank! – Chace