Je veux append le UISegmentedControl
ci-dessous le searchBar
et au-dessus du TableView de UISearchDisplayController
. Actuellement, UISearchDisplayController
affiche uniquement sa tableView
sous son SearchBar
.
Mais je veux append un UISegmentedControl
dessous de la SearchBar
sorte que j'ai SearchBar
sur le dessus, après SearchBar
j'ai un UISegmentedControl
et en dessous de ce UISegmentedControl
j'ai UITableView
. Est-ce un moyen de le faire en utilisant UISearchDisplayController
ou je dois faire mon propre SearchDisplayController
qui ont ses propres SearchBar
, UISegmentedControl
et TableView
?
toute suggestion? Merci
Activer ShowScopeBar
et append autant de segments en ajoutant des titres de scop et les gérer en suivant la méthode
Par code
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; [searchBar setShowsScopeBar:YES]; [searchBar setScopeButtonTitles:@[@"button1",@"button2"]]; [[self view] addSubview:searchBar];
Par XIB
Méthode déléguée pour gérer l'action du button d'étendue
- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope{ }
Créer une vue dans la table
UIView *viewsearch=[[UIView alloc]initWithFrame:CGRectMake(0,-10, 320,83)]; [self.tblname addSubview:viewsearch]; [self.view addGestureRecognizer:revealController.panGestureRecognizer] UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0,5, 320, 40)]; searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth; searchBar.delegate=self; [searchBar setBarTintColor:[UIColor colorWithRed:(249/255.0) green:(9/255.0) blue:(99/255.0) alpha:1]]; searchBar.tintColor = [UIColor whiteColor]; searchBar.placeholder = @"Search items eg jacket";
Ajouter la vue de la barre de search dans cette vue.
[viewsearch addSubview:searchBar]; searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
Utilisez UISegmentedControl dans cette vue de search.
NSArray *itemArray = [NSArray arrayWithObjects: @"General", @"Near me", nil]; UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray]; segmentedControl.frame = CGRectMake(50,53, 225, 22); segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain; [segmentedControl addTarget:self action:@selector(MySegmentControlAction:) forControlEvents: UIControlEventValueChanged]; segmentedControl.selectedSegmentIndex = 0; segmentedControl.tintColor = [UIColor colorWithRed:(249/255.0) green:(10/255.0) blue:(99/255.0) alpha:1]; segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin; [viewsearch addSubview:segmentedControl];
Je trouve la solution pour mon problème que j'ai ajouté le UISegmentedControl comme en-tête de TableView de UISearchDisplayController. De cette façon, il semblait juste que j'ai ajouté un UISegmentedControl séparément sous le searchBar de UISearchDisplayController.
Merci à tous ceux qui ont essayé d'aider.