2016-01-15 1 views
0

Я использую UISegmentController (по умолчанию предоставляется iOS). Я хочу показать текст для iPad или iPhone. Где, как и в случае iPhone, я хочу показывать значки (а не текст) в одной и той же панели сегментов. Возможно ли это? Если да, то как я могу достичь этого в доске объявлений или программно?Сегментная панель в iOS по разным классам классов

ответ

1

Вы можете достичь этого путем добавления UISegmentedControl программно. код выглядит следующим образом в контроллере viewWillAppear метода

- (void)viewWillAppear:(BOOL)animated { 
UISegmentedControl * cntrl = [[UISegmentedControl alloc] initWithItems:@[[UIImage imageNamed:@"Circle"],@"2"]]; 
cntrl.frame = CGRectMake(30, 100, 200, 50); 
[self.view addSubview:cntrl]; 
} 

С выше коде мы создаем управление сегмента с одним изображением в первом сегменте и текст во втором сегменте. Проверьте прикрепленный снимок экрана.

Используйте следующий код для проверки либо устройства является IPad или iPhone

-(BOOL) isiPad { 
return UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad; 
} 

В зависимости от типа устройства, настроить управление сегментом.

Для существующего контроля сегмента, когда вы хотите установить изображение,

[cntrl setImage:[UIImage imageNamed:@"Tick"] forSegmentAtIndex:0]; 

использование выше метод, указав, какой образ вы хотите установить в частности segmentIndex.

В то же образом, когда вы хотите установить текст в частности, индекс, используйте

[cntrl setTitle:@"Hello" forSegmentAtIndex:0]; 
+0

Спасибо, но у меня уже есть элемент управления сегментами в доске объявлений, и это функция outputReferance в моем контроллере. Я просто хочу обновлять значки на основе устройства (для того же элемента управления @Bharath Vankireddy –

+0

Проверьте мой обновленный ответ. Это должно решить вашу проблему. –

+0

да, я сделал это так и собирался опубликовать ответ. Спасибо :) –

0

Оно не представляется возможным полностью использовать раскадровку на своих собственных, чтобы сделать такую ​​функциональность, но сочетание this и this внутри viewDidLoad могли бы получить вы хотите, вы хотите

+0

нет там нет возможности (я могу найден) –

+0

, если вы не имеете возможность, как это на картинке, то вы Арент с помощью (которые могут быть включены в инспекторе файлов, первая вкладка в верхней правой панели инструментов) – Fonix

+0

спасибо, но я использую классы размера и получаю выбор, как на картинке выше. проблема в том, что когда я устанавливаю изображение для одного класса размера (скажем, wAny hCompact), я появляется для всех. То же самое происходит с текстом @Fonix –

Смежные вопросы