UisementedControl показывает только первый элемент на устройстве, но работает в симуляторе

StackOverflow https://stackoverflow.com/questions/6820692

Вопрос

Я искал, как выяснить, как добавить элемент UisementedControl в элемент кнопки навигационной панели (кнопка правой панели). Он отлично работает в симуляторе, но когда я пробую его на устройстве, появляется только первый элемент в сегментированном управлении. Он занимает полную длину (т.е. есть только один сегмент по всему этому).

- (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];

}

Есть идеи, что идет не так?

Это было полезно?

Решение

Убедитесь, что имена файлов изображения точно совпадают с именами ресурсов в вашем проекте, включая буквы с заглавным и строчным.

Устройство чувствительно к корпусу, и если имя не соответствует, imageNamed: вернется nil Завершение массива.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top