UISearchBar Platzhalter ausrichten und in iOS 7 zuschneiden

8

Platzieren Sie in iOS 7 den Platzhalter UISearchbar zentriert und überlagern Sie die Schaltfläche Lesezeichen, bis die Suchleiste nicht ausgewählt ist:

Wenn es ausgewählt wurde, sieht es wie erwartet aus:

Ich muss es die ganze Zeit so sehen. Danke.

    
Mike Keskinov 08.10.2013, 20:20
quelle

3 Antworten

3

NEUE LÖSUNG:

%Vor%

Bei dieser Lösung wird nur die neue UILable-Ansicht hinzugefügt und der vorhandene Platzhalter ausgeblendet, damit das tatsächliche Gefühl von searchBar.Again den tatsächlichen Platzhalter wiedergibt, wenn die Suchleiste aktiv wurde.

Dies kann ein temporärer Hack sein, um das UI-Problem in IOS7 zu beheben.

ALTE LÖSUNG:  [searchField setValue: [NSNummer numberWithBool: YES] forKeyPath: @ "_ placeholderLabel.adjustsFontSizeToFitWidth"];

funktioniert nicht in ios7, da die Größe des für die Anzeige des Inhalts verwendeten Etiketts ausreicht, um den Text anzuzeigen, das Problem ist der Etikettenbreitenfehler von ios7. Es kann die Etikettenbreite nicht ändern.

Es gibt ein bisschen Hack, um das zu beheben.

%Vor%

Berechnen Sie die Schriftgröße basierend auf Ihrer eigenen Suchleistenbreite. Ich habe auch versucht, die Breite eines bestimmten Labels zu ändern, aber es funktioniert nie.

    
CoolMonster 03.01.2014 07:17
quelle
-1
%Vor%

    
codercat 31.12.2013 07:17
quelle
-2

Ich bin nicht hier, um Ihnen eine allgemeine Lösung zu geben, aber wenn Sie einen placeHolder hinzufügen möchten, ist die einfachste und einfachste Methode, den placeHolder selbst zu kürzen, also statt

searchBar.placeholder = @ "woord hier inceren";

lass es sein

searchBar.placeholder = @ "woord hier invo ...";

Ich habe versucht, mich mit den privaten Methoden von Apple zu beschäftigen, aber ohne Glück: Die searchBar-Unteransichten sind: -UISearchBarBackground. -UISearchBarTextField. lassen Sie den UISearchBarBackground beiseite Die Untersichten der UISearchBarTextField-Instanz sind: -_UISearchBarSearchFieldBackgroundView. -UIImageView. -UISearchBarTextFieldLabel.

Ich habe versucht, mit dem rect (ich betone das Wort Chaos, da diese private Methoden sind) der UISearchBarTextFieldLabel Coz bin ich ziemlich sicher, dass sein Bild nicht richtig wiedergegeben wird, wenn die searchBar-Schaltfläche angezeigt wird (Lesezeichen), wenn Sie searchBar.showsBookmarkButton = NO wählen; Der placeHolder-Text wird wie erwartet gekürzt. Es liegt an dir, rette dich irgendwann und geh mit der dummen Lösung, aber das bringt Dinge zum Laufen oder taucht noch weiter. mach weiter so.

    
TheFuquan 02.01.2014 19:54
quelle