In Cocoa-Touch finden wir eine Kontrolle UISearchBar
. Ich brauche, um es anzupassen, so dass das suchen-Symbol (die wir auf führt die jeweilige Aktion) in der "textfield" rechts ausgerichtet. In der Regel finden wir es Links ausgerichtet. Ist es möglich, dies zu tun? Ich habe getan, R & D, aber konnte ihn nicht finden ...
Wie kann ich es tun? Gibt es gute tutorials, wo wir es finden können?
Leider die
UISearchBar
war nicht entworfen, um direkt unterstützen. Das zu erreichen, was wir wollen, ist es wahrscheinlich, dass wir gehen zu müssen, um Lösungen, die Kompromisse visuell oder Funktionalität weisen oder schreiben Sie eine Menge von Customizing-code.Ich umrissen habe ein paar Ansätze, die an das heranzukommen, was wir wollen und von nutzen sein kann.
Zugriff Auf Untersichten Ansatz
Den text innerhalb einer
UISearchBar
ist einUITextField
ist eine Untersicht, dieUISearchBar
und ist zugänglich durch die in der Regel bedeutet, d.h.view.subviews
.Der Lupe suchen Symbol ist ein
UIImageView
imleftView
Eigenschaft desUITextField
. Wir können schalten Sie es über zu den rechts mit dem folgenden code:Gibt uns das folgende Ergebnis:
Wie Sie sehen können, das Symbol überlauf an den Rand des abgerundeten Rechtecks und das Symbol "löschen" ist verschwunden. Darüber hinaus
rightView
Eigenschaft bestimmt war für andere Inhalte, wie die Ergebnisse der Suche-button und die Schaltfläche "Lesezeichen". Setzen Sie das Symbol "suchen" hier kann es zu Konflikten mit dieser Funktionalität in irgendeiner Weise, selbst wenn Sie waren in der Lage, die Polsterung des offsets positioniert ihn entsprechend.Zumindest können Sie diese Methode verwenden, um zu extrahieren das Symbol als
UIImageView
und positionieren Sie es explizit, wo Sie sehen, passen, wie alle anderen anzeigen und schreiben von benutzerdefiniertem code zu behandeln, Tippen Sie auf Veranstaltungen etc.Anpassung Ansatz
In iOS v5.0 und später, Sie können das Aussehen von der Suche nach bars mit den aufgeführten Methoden hier. Der folgende code macht Gebrauch von offsets auf die position das Symbol und der text innerhalb der
UISearchBar
:Auf einem standard -
UISearchBar
320 Breite sieht es wie folgt aus:Dies würde halten alle mit dem event verbundenen Funktionen werden mit dem Symbol funktioniert wie erwartet, aber leider ist die
UITextField
verwirrt ist, und trotz seiner Breite, es zeigt nur einen sehr kleinen Teil von seinem text. Wenn Sie könnte einen Weg finden, dass der text zur Anzeige, die darüber hinausgeht, was es glaubt, das Ende derUITextField
, dies wird wahrscheinlich Ihre beste Wette.Meine Anforderung war, dass das suchen-Symbol sollte auf der rechten, und die, die es verbergen sollte, Wann immer das X-Symbol auftauchte.
Kam ich auf eine ähnliche Lösung wie oben, aber ein bisschen anders und auch mit Swift 2 und AutoLayout. Die grundlegende Idee ist, verstecken Sie die linke Ansicht, erstellen Sie eine neue Ansicht mit der Lupe Bild, und verwenden, autolayout für pin es auf der rechten Seite. Dann nutzen Sie UISearchBarDelegate Methoden zum ausblenden der such-icon, wenn die Suchleiste text ist nicht leer.