web-dev-qa-db-fra.com

Comment changer la position ou masquer l'icône de la loupe dans UISearchBar dans IOS 7?

Je travaille sur IOS 7 application.Par défaut, il apparaît sous la forme Pic (1) .Mais je dois le changer en tant que Pic (2) .J'ai cherché Google et trouvé peu de réponses à l'exigence, mais cela n'a sinon, j'ai besoin de me cacher. Je peux donc gérer avec l'image d'arrière-plan. C'est la première image

Pic(1)

enter image description here

J'ai utilisé le code ci-dessous pour le modifier.Mais je n'ai pas réussi.

Dans le fichier .h

@property(nonatomic,strong) IBOutlet UISearchBar *findSearchBar;

Dans le fichier .m

@synthesize findSearchBar;

 - (void)viewDidLoad
 {
[super viewDidLoad];
 [self setSearchIconToFavicon];
 }

 - (void)setSearchIconToFavicon
{
// The text within a UISearchView is a UITextField that is a subview of that UISearchView.
   UITextField *searchField;
   for (UIView *subview in self.findSearchBar.subviews)
   {
       if ([subview isKindOfClass:[UITextField class]]) {
          searchField = (UITextField *)subview;
          break;
      }
  }

if (searchField)
{
    UIView *searchIcon = searchField.leftView;
    if ([searchIcon isKindOfClass:[UIImageView class]])
    {
        NSLog(@"aye");
    }
    searchField.rightView = nil;
    searchField.leftView = nil;
    searchField.leftViewMode = UITextFieldViewModeNever;
    searchField.rightViewMode = UITextFieldViewModeAlways;
}

}

Je n'arrive pas à faire en sorte que le centre de l'image soit à zéro. Cela tue vraiment mon temps. Aidez-moi s'il vous plaît. Là où j'avais mal tourné.

18
iSwaroop
    UITextField *txfSearchField = [looksearchbar valueForKey:@"_searchField"];
    [txfSearchField setBackgroundColor:[UIColor whiteColor]];
    [txfSearchField setLeftViewMode:UITextFieldViewModeNever];
    [txfSearchField setRightViewMode:UITextFieldViewModeNever];
    [txfSearchField setBackground:[UIImage imageNamed:@"searchbar_bgImg.png"]];
    [txfSearchField setBorderStyle:UITextBorderStyleNone];
    //txfSearchField.layer.borderWidth = 8.0f;
    //txfSearchField.layer.cornerRadius = 10.0f;
    txfSearchField.layer.borderColor = [UIColor clearColor].CGColor;
    txfSearchField.clearButtonMode=UITextFieldViewModeNever;

Essayez ceci peut être que cela vous aidera ........

12
Hari1251

Je ne sais pas comment aligner à gauche l'espace réservé, mais depuis iOS 5.0, il existe une méthode simple et prise en charge pour modifier les propriétés du champ de texte de la barre de recherche, par exemple:

[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setLeftViewMode:UITextFieldViewModeNever];

qui cachera l'icône en forme de loupe.

9
atticus

Tu pourrais essayer:

searchBar.setImage(UIImage(named: "yourimage")!, forSearchBarIcon: UISearchBarIcon.Clear, state: UIControlState.Normal)
0
DairySeeker