2 votes

Supprimer l'ombre interne de UISearchBar

Comment supprimer l'ombre interne de l'UISearchBar ?

J'ai essayé [[searchBar layer]setShadowOpacity:0] mais cela n'a rien donné.

4voto

chmaynard Points 51
  1. Créez une image d'arrière-plan ayant l'apparence souhaitée. Par exemple, vous pouvez créer une image d'arrière-plan, cliquez ici pour voir les deux images extensibles avec embouts que j'ai utilisées.

  2. Utilisez l'interface suivante :

    [self.searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"search_field.png"] forState:UIControlStateNormal];

3voto

HamasN Points 484
    UITextField *textField = nil;

    for( UIView *subview in searchBar.subviews )
    { 
       if ([subview isKindOfClass:[UITextField class]]) {
            textField = (UITextField *)subview;
            textField.borderStyle = UITextBorderStyleNone;
            textField.layer.borderWidth = 1.f;
            textField.layer.borderColor = [UIColor lightGrayColor].CGColor;
            textField.layer.cornerRadius = 14.0f;
            textField.background = nil;
            textField.backgroundColor = [UIColor whiteColor];
        }
    }

Utilisez ce code pour supprimer l'ombre interne de l'UISearchBar.

2voto

Guo Luchuan Points 4699
    for( UIView *subview in searchBar.subviews )
    {
        if( [subview isKindOfClass:NSClassFromString( @"UISearchBarBackground" )] )
        {
            //   you can set the textField backgroundColor clearColor like below.
            //  [subview setAlpha:0.0f];
            //  break;

            //   or you can set textField backgroundColor solid color like below
            UIView *aView = [[UIView alloc] initWithFrame:subview.bounds];
            aView.backgroundColor = [UIColor greenColor];
            [subview addSubview:aView];
            break;
        }
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X