UISegmentedControl mostra solo primo punto all'ordine dispositivo, ma lavora in Simulator
-
26-10-2019 - |
Domanda
Ho cercato in giro un capito come aggiungere un elemento UISegmentedControl alla voce pulsante di barra di navigazione (tasto destro del bar). Funziona bene nel simulatore, ma quando provo sul dispositivo, solo il primo elemento negli spettacoli di controllo segmentati in su. Occupa tutta la lunghezza (vale a dire non v'è solo un segmento in tutta la cosa).
- (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];
}
Tutte le idee che vanno male?
Soluzione
Assicurarsi che i nomi dei file immagine corrispondono esattamente con i nomi delle risorse nel progetto, tra cui le lettere maiuscole / minuscole.
Il dispositivo è sensibile caso e se il nome non corrisponde, imageNamed:
tornerà nil
chiude l'array.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow