2015-10-06 32 views
7

Ho usato il codice seguente per modificare il colore di sfondo del campo di testo UISearchBar.come modificare il colore di sfondo del campo di testo UISearchBar e il colore del testo in ios8

[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setDefaultTextAttributes:@{ 
                    NSForegroundColorAttributeName : [UIColor redColor], 
                    NSFontAttributeName : [UIFont systemFontOfSize:15] 
                  }]; 

ma non funziona per me, qualcuno può dare una soluzione. grazie in anticipo

+0

è possibile aggiungere ulteriori informazioni "* esso daino non funziona per me * "è abbastanza vago. – potame

+0

puoi dare un esempio per impostare il colore di sfondo del campo di testo in uisearchbar –

risposta

17

Prova questo:

UITextField *searchField = [self.searchBar valueForKey:@"searchField"]; 

// To change background color 
searchField.backgroundColor = [UIColor blueColor]; 

// To change text color 
searchField.textColor = [UIColor redColor]; 

// To change placeholder text color 
searchField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"Some Text"]; 
UILabel *placeholderLabel = [searchField valueForKey:@"placeholderLabel"]; 
placeholderLabel.textColor = [UIColor grayColor]; 
5

Basta provare questo codice

[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setBackgroundColor:[UIColor grayColor]]; 

O

Prova questa

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 

     //change the background color 

[[self searchViewForTextFieldBg:self.searchTextfield] setBackgroundColor:[UIColor grayColor]]; 

//change the textcolor 
self.searchTextfield.textColor =[UIColor greenColor]; 

    } 

    - (UITextField*)searchViewForTextFieldBg:(UIView*)view 
{ 
    if ([view isKindOfClass:[UITextField class]]) { 
     return (UITextField*)view; 
    } 
    UITextField *searchTextField; 
    for (UIView *subview in view.subviews) { 
     searchTextField = [self searchViewForTextFieldBg:subview]; 
     if (searchTextField) { 
      break; 
     } 
    } 
    return searchTextField; 
}