Wie Sie ändern, löschen-Taste image (x-Taste) oder wenigstens die Farbe der Schaltfläche löschen Bild in UISearchbar?
Ich brauche eine vollständig transparente Suchleiste mit der Schaltfläche Abbrechen. Ich habe versucht, viele Lösungen, Aber ich konnte nicht finden eine bessere Lösung. Wenn ich versuche zu löschen, Hintergrundfarbe zeigt scope bar. Kann irgend jemand mir einige source-code für voll transperant Suchleiste mit können klicken.
Hier ist
addSearchbar.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.5];
UITextField *sbTextField = (UITextField *)[self.addSearchbar.subviews lastObject];
for (UIView *subview in addSearchbar.subviews)
{
NSLog(@"%@",subview);
if ([subview isKindOfClass:[UITextField class]])
{
sbTextField = (UITextField *)subview;
UIImage *image = [UIImage imageNamed: @"06_magnifying_glass.png"];
UIImageView *iView = [[UIImageView alloc] initWithImage:image];
iView.frame = CGRectMake(0, 0, 24, 24);
sbTextField.leftView.frame = CGRectMake(0, 0, 24, 24);
sbTextField.leftView = iView;
[sbTextField.rightView removeFromSuperview];
CGFloat myWidth = 24.0f;
CGFloat myHeight = 24.0f;
UIButton *myButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, myWidth, myHeight)];
[myButton setImage:[UIImage imageNamed:@"clear.png"] forState:UIControlStateNormal];
[myButton setImage:[UIImage imageNamed:@"clear.png"] forState:UIControlStateHighlighted];
[myButton addTarget:self action:@selector(doClear:) forControlEvents:UIControlEventTouchUpInside];
sbTextField.rightView = myButton;
sbTextField.rightViewMode = UITextFieldViewModeWhileEditing;
break;
}
if([subview isMemberOfClass:[UISegmentedControl class]])
{
UISegmentedControl *scopeBar=(UISegmentedControl *) subview;
scopeBar.tintColor = [UIColor clearColor];
}
}
[sbTextField removeFromSuperview];
[addSearchbar addSubview:sbTextField];
[addSearchbar setSearchFieldBackgroundImage:[UIImage imageNamed:@"SearchBar.png"] forState:UIControlStateNormal];
CGRect sbFrame = self.addSearchbar.frame;
//Set the default height of a textfield
sbFrame.size.height = 31;
/* 8 is the top padding for textfield inside searchbar
* You may need to add a variable to 8 according to your requirement.
*/
sbFrame.origin.y = 6+self.addSearchbar.frame.origin.y;
sbTextField.frame = sbFrame;
sbTextField.textColor = [UIColor lightGrayColor];
[sbTextField setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin];
Müssen eine vollständig transparente Suchleiste mit der cancel-Taste und clear-Taste, aber ohne scopebar.
Vielen Dank im Voraus
- stackoverflow.com/questions/9704562/...
- Ich fand die Lösung aber anderen pblm also ich aktualisierte mein ques
InformationsquelleAutor Arvind | 2012-10-30
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ab iOS 5.0 können Sie Folgendes tun:
Thats it. Vielleicht möchten Sie aber auch wiederholen Sie die Zeile für die
UIControlStateHighlighted
Zustand.Das Letzte, was Sie tun sollten, ist zu Graben um im inneren der Untersichten der Suchleiste. Es ist garantiert, um zu brechen einige Tag. Verwenden Sie die richtige API zum anpassen der Kontrolle.
Sehen, dass Sie die UIControlHighlighted Zustand Bild zuerst und dann die UIControlStateNormal Zustand Bild oder sonst Sie möglicherweise vor einem Problem, wobei die clearIcon ist nicht in den markierten Zustand. (Nicht sicher, warum dieses problem Auftritt.)
Für diejenigen von Euch, die dies versuchen, in der Swift (ich weiß, dass jemand kommen würde, um hier auf die Suche nach dieser...) hier gehen Sie:
Stellen Sie sicher, dass das richtige Bild in Ihr Vermögen.xcassets Ordner.
Hier ist, wie Sie ändern die Lupe und clear-Taste-Symbol in einem UISearchBar die UITextField
Ohne Neue Icons: