2013-05-08 3 views
0

Я пытаюсь добавить UISegmentController к UIActionSheet вот мой кодНужна помощь в отношении UIActionSheet

UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Copy", @"New Key", nil]; 

NSArray *keyLengthOptions = [NSArray arrayWithObjects:@"Option 1", @"Option 2", nil]; 

UISegmentedControl *segmentController = [[UISegmentedControl alloc]initWithItems:keyLengthOptions]; 

segmentController.frame = CGRectMake(35, 0, 250, 38); 

    [segmentController addTarget:self action:@selector(segmentValueChanged:) forControlEvents:UIControlEventValueChanged]; 

[segmentController setSegmentedControlStyle:UISegmentedControlStyleBar]; 

[actionSheet addSubview:segmentController]; 

[actionSheet setFrame:CGRectMake(0, 0, 320, 500)]; 

[actionSheet showInView:self.navigationController.tabBarController.view]; 

Каждая вещь работает отлично, но [actionSheet setFrame:CGRectMake(0, 0, 320, 500)]; не работает. Как увеличить размер таблицы UIActionSheet для настройки с помощью subview?

ответ

1

Порядок очень важен. Вам нужно вызвать showInView: сначала в поле UIActionsheet, затем измените его размер. Вот еще один вопрос, который решает эту проблему:

adding view into action sheet

+0

Спасибо большое, он работал. Не могли бы вы рассказать мне, почему призывный приказ важен в этом сценарии? –

+1

Поскольку showInview: устанавливает границы и центр на листе действий. Если вы установите кадр перед вызовом showInView: он просто перезаписывается. – Saltymule

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