UISearchBar Table Abschnitt Indexüberlappung

8

Wie ändere ich die Breite der UISearchBar, wenn sie sich in einem Tabellenkopf befindet, so dass der Abschnittsindex das Textfeld nicht überlappt? Ich möchte das gleiche Layout wiederherstellen, das Sie in der Kontaktansicht der Telefon-App finden.

    
Ward 14.01.2010, 21:08
quelle

3 Antworten

5

Eine mögliche Lösung ist das Hinzufügen einer benutzerdefinierten Ansicht zu TableHeaderView. Das habe ich gemacht:

searchBar ist eine UISearchBar, die ich in der Header-Datei deklariert habe. Ich habe eine UIView erstellt und eine UINavigationBar für die gesamte Breite hinzugefügt und die kurze UISearchBar darüber hinzugefügt. Dann habe ich die UIView schließlich tableHeaderView zugewiesen.

%Vor%

Eine elegantere Lösung kann sein, die UISearchBar mit der contentStretch-Eigenschaft zu dehnen. Ich muss das immer noch versuchen und prüfen, ob es funktioniert.

    
srik 07.04.2010 10:27
quelle
1

Meinst du, dass die AZ der Indexbuchstaben auf der rechten Seite des Bildschirms in die Suchleiste übergelaufen ist, wie in diesem Screenshot zu sehen ist, wo das 'A' und das 'B' in der rechten Suchleiste erscheinen?

(a) Ich kann keinen Weg finden, dieses Alphabet-Überlauf-Problem zu vermeiden. Der Ansatz, den Scott McCammon hier mit seiner Antwort verknüpft, ist von Apple verboten (und selbst dann bin ich mir nicht sicher, ob es das Problem löst).

(b) Ich sehe dieses Verhalten in Apples Kontakten -Apps in iOS 6.0.1 auf meinem iPod touch (4. Generation).

(c) Ich nehme logisch an, dass es sich um eine Funktion handelt, die kein Bug ist, da sich die Suchleiste in der Kopfzeile der Tabellenansicht befindet. Die Kopfzeile ist Teil der Tabellenansicht und scrollt wie ein Teil der Tabellenansicht. Daher ist es möglicherweise sinnvoll, dass das Indexalphabet über den Rest der Tabellenansicht gezeichnet wird.

Dieses Problem wird mehr zu einem Problem, wenn Sie über Bereichsschaltflächen verfügen. Auf der rechten Seite ist kein Bereich für Bereichsschaltflächen reserviert, sodass das Indexalphabet direkt über der Schaltfläche ganz rechts angezeigt wird.

    
Basil Bourque 01.02.2013 07:39
quelle
0

Wenn Sie einen UISearchDisplayController verwenden, funktioniert das gewünschte Verhalten automatisch wie in diese Antwort .

    
Scott McCammon 01.07.2010 02:55
quelle