1

J'ai un UIViewController avec une barre UITableView standard et une barre de recherche avec un délégué de recherche ajouté. La vue a un contrôle segmenté dans la barre de navigation, lorsque l'utilisateur change le contrôle segmenté, je voudrais cacher le searchBar.Masquage de UITableView searchBar laisse un espace vide

Le code J'utilise est:

- (void)segChange { 
    if ([segmentedControl selectedSegmentIndex] == 0) { 
     [[[self searchDisplayController] searchBar] setHidden:YES]; 

     // This does not work: 
     [[[self searchDisplayController] searchResultsTableView] setContentOffset:CGPointZero animated:NO]; 

    } 
    else { 
     [[[self searchDisplayController] searchBar] setHidden:NO]; 
    } 


} 

Le code se cache l'amende SearchBar, mais il laisse aussi un espace blanc méchant en haut de la vue de la table .... des idées sur la façon d'obtenir débarrasser???

Merci

Répondre

6

Ce code résolu le problème:

- (void)segChange { 
    if ([segmentedControl selectedSegmentIndex] == 0) { 
     [self.myTableView setTableHeaderView:nil]; 
    } 
    else { 
     [self.myTableView setTableHeaderView:[[self searchDisplayController] searchBar]]; 
    } 
} 
+0

exactement ce que je cherchais! Merci ... travaillé comme un charme! –

1

Plutôt que de se cacher le contrôle essayer segmenté définissant son cadre à CGRectZero

+0

Merci pour votre réponse. Le contrôleur segmenté est dans la barre de navigation, j'essaye de cacher la barre de recherche. J'ai essayé de placer le searchBar à CGRectZero, mais cela n'a pas fonctionné non plus. – KSoza

Questions connexes