UISegmentedControl montre seulement le premier élément sur l'appareil, mais fonctionne dans Simulator
-
26-10-2019 - |
Question
J'ai cherché autour d'un cernées comment ajouter un élément de UISegmentedControl à la barre de boutons de navigation item (à droite bouton bar). Il fonctionne très bien dans le simulateur, mais quand je l'essayer sur l'appareil, seul le premier élément de la montre de contrôle segmentés. Elle occupe toute la longueur (à savoir il n'y a qu'un seul segment à travers la chose).
- (void) setupSegmentedControl {
//set up the segmented control and add it to the nav bar rightBartButtonItem
UISegmentedControl * segmentControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:[UIImage imageNamed:@"Settings.png"],[UIImage imageNamed:@"Map-Icon.png"],[UIImage imageNamed:@"Search.png"], nil]];
UIBarButtonItem * segmentControlButton = [[UIBarButtonItem alloc] initWithCustomView:segmentControl];
[segmentControl setBackgroundColor:[UIColor clearColor]];
segmentControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentControl.frame = CGRectMake(0, 0, 75, 30);
[segmentControl setMomentary:YES];
[segmentControl addTarget:self
action:@selector(segmentedControlAction:)
forControlEvents:UIControlEventValueChanged];
self.navigationItem.rightBarButtonItem = segmentControlButton;
[segmentControl release];
}
Toutes les idées qui vont mal?
La solution
Assurez-vous que les noms de fichiers d'image correspondent exactement aux noms de ressources dans votre projet, y compris les lettres majuscules / minuscules.
Le dispositif est sensible à la casse et si le nom ne correspond pas, imageNamed:
retourne nil
terminaison du réseau.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow