полупрозрачный modalViewController - PullRequest
1 голос
/ 06 августа 2011

Я исследовал это, и кажется, что единственный способ сделать это - использовать UIActionSheet, вопрос в том, что мой UIActionSheet покрывает только половину экрана, мой код:

MyViewController *myVC = [[myViewController alloc] init];
UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:@"\n\n"
                                                           delegate:self
                                                  cancelButtonTitle:@"cancel"
                                             destructiveButtonTitle:@"done"
                                                  otherButtonTitles:nil];
[myActionSheet addSubview:myVC.view];
[myActionSheet showInView:currentView];
[myActionSheet release];

Такжекак я тогда отклонить этот UIActionSheet от моего MyViewController?Есть ли лучшее решение, чем это?Вот скриншот того, что я имею в виду, загрузив половину экрана:

снимок экрана

Вот пример проекта для иллюстрации моей проблемы.

Ответы [ 2 ]

1 голос
/ 06 августа 2011

UIActionSheet будет увеличивать или уменьшать свою высоту в соответствии с количеством UIButton s в нем.Что вы можете сделать, это добавить другой вид над вашим видом с желаемой альфа.И удалите его из подпредставления и добавьте в подпредставление в соответствии с вашими требованиями, т.е. добавьте подпредставление, когда вы отображаете лист действий, и удалите, когда вы отклоняете UIActionSheet.Я надеюсь, что это относится к вашему вопросу и поможет вам решить вашу проблему.

1 голос
/ 06 августа 2011

Проблема заключается в размере кадра вашего TestViewController и методе добавления UIView в качестве вспомогательного вида UIActionSheet.

Внесите следующие изменения, и он будет корректно отклонен!

Реализуйте willPresentActionSheet и addSubView в этом методе

- (IBAction)pressed:(id)sender
{
UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:@"\n\n" delegate:self cancelButtonTitle:@"cancel" destructiveButtonTitle:@"done" otherButtonTitles:nil];
[myActionSheet showInView:self.view];
[myActionSheet release];   
}


- (void) willPresentActionSheet:(UIActionSheet *)actionSheet{

TestViewController *myVC = [[TestViewController alloc] init];
[actionSheet addSubview:myVC.view];

}

И в viewDidLoad изTestViewController, набор

- (void)viewDidLoad
{
self.view.frame = CGRectMake(0,0 , 320, 60);
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
...