Anpassen UITextfield der UISearchbar - iOS
Ich versuche, passen Sie das Textfeld für die UISearchbar. Das Bild unten zeigt meine halbe Arbeit geleistet.
Ich habe Unterklassen der UISearchbar und nannte es aus meiner Sicht-controller. Ich bin versucht zu entfernen, die dunklen grauen Linien, die von der textfield. Unten ist die Implementierung des UISearchbar hinzufügen, um die Untersicht der viewcontroller.
searchbar = [[SearchBar alloc] initWithFrame:CGRectMake(35,78, 250, 17)];
searchbar.backgroundColor = [UIColor clearColor];
searchbar.layer.borderColor = [[UIColor clearColor] CGColor];
searchbar.layer.borderWidth = 0;
for(UIView *view in searchbar.subviews){
if([view isKindOfClass:[UITextField class]]){
UITextField *tf= (UITextField *)view;
tf.layer.borderColor = [[UIColor clearColor] CGColor];
tf.delegate = self;
break;
}
}
[self.view addSubview:searchbar];
searchbar.delegate = self;
UISearchBar Unterklasse:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
//Initialization code
}
return self;
}
-(void)layoutSubviews{
UITextField *searchField;
[[[self subviews] objectAtIndex:0] removeFromSuperview];
[self setTintColor:[UIColor clearColor]];
self.clipsToBounds = YES;
NSUInteger numViews = [self.subviews count];
for(int i = 0; i < numViews; i++) {
if([[self.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) {
searchField = [self.subviews objectAtIndex:i];
searchField.leftViewMode = UITextFieldViewModeNever;
searchField.backgroundColor = [UIColor clearColor];
}
}
if(!(searchField == nil)) {
searchField.backgroundColor = [UIColor clearColor];
searchField.textColor = [UIColor blackColor];
searchField.frame = CGRectMake(self.frame.origin.x,self.frame.origin.y,self.frame.size.width,self.frame.size.height-10);
[searchField setBorderStyle:UITextBorderStyleRoundedRect];
}
[super layoutSubviews];
}
Ich versuche zu erreichen, so etwas wie dieses:
Die textfield-sollte keine Grenzen. Die Symbole sind abgeflacht UIImageView.
InformationsquelleAutor DesperateLearner | 2012-10-19
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine einfache Möglichkeit, um textfield aus UISearchBar Untersicht Hierarchie und legen Sie seine Eigenschaften wie erforderlich wie
danke, dass Sie so viel Animesh...es löst mein problem.
Danke dir, ich werde bezahlen, Bier für Sie, ein Tag.
Danke! Früher habe ich dies ändern, um die Tastatur für die Suche über UITextField *txfSearchField = [_searchBar valueForKey:@"_searchField"]; [txfSearchField setKeyboardType:UIKeyboardTypeNumberPad];
gibt es eine Möglichkeit, ändern Sie den Texteinschub, der das textfield?
InformationsquelleAutor Animesh
Verwenden Sie die folgenden, wenn Sie nicht verwenden möchten, undokumentierte features oder verwenden Sie ein Bild:
genial Antwort.das ist mein problem gelöst
InformationsquelleAutor Nick H247
Ab IOS 5 haben Sie das Aussehen proxy, siehe:
http://developer.apple.com/library/ios/#documentation/uikit/reference/UISearchBar_Class/Reference/Reference.html (es gibt zwei Bereiche, die sogenannten "Anpassen Aussehen", aktivieren Sie beide Kontrollkästchen).
Hier ist ein funktionierendes Beispiel, es ändert alle UISearchBars in der app:
InformationsquelleAutor marmor
Umsetzung Ändern sich Beständig & High-Performance
Zu jemand dies Lesen und Frage mich, wie das text-Feld eines such-Leiste kann leicht zugegriffen werden, die in Swift; Sie können erweitern UISearchBar hinzufügen textField Eigenschaft, indem Sie mit dem folgenden Stück code, das ist resistent gegen zugrunde liegenden Implementierung von änderungen und speichert das Gefundene Ergebnis so es ist hohe Leistung.
Wenn Sie möchten, ändern Sie den Namen der Eigenschaft, stellen Sie sicher, Sie ändern sich nicht, es zu Obere Suchfeld. Das Durcheinander wird Ihre Suche nach bar.
return self.valueForKey("_searchField") as? UITextField
?Das funktioniert. Ich bezweifle, dass Apple den Schlüssel ändern, irgendwann bald, aber bei der Verwendung von hacky-Lösungen, die ich persönlich bevorzuge, einen Weg zu finden, es zu tun, das ist ein bisschen elastisch zugrunde liegenden Implementierung von änderungen.
Ich bearbeitete Ihre änderungen zurück. Mein code war alt, aber Sie bearbeitet den Kern der Umsetzung und verändert ihn in etwas ganz anderes. Das Herz meiner Implementierung liegt darin, nicht unter Berufung auf _searchField, um resistent zu sein, um core-Umsetzung von änderungen.
InformationsquelleAutor isair
Habe ich gefunden, iOS 10, die ich brauche, dies zu tun (ausgeliehen von oben und rasch angepasst)
InformationsquelleAutor msjulie
Kurze und Einfache
InformationsquelleAutor Abhishek Bedi