ActionSheet не отображается должным образом - PullRequest
2 голосов
/ 27 июля 2011

У меня есть этот код для получения NSStrings из NSDictionary из NSMutableArray, но проблема в том, что он не отображается правильно. Вот код:

UIActionSheet *playingSheet = [[UIActionSheet alloc] initWithTitle:@"Hi" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
     for(NSDictionary *dict in accounts) {
         NSString *name = [dict objectForKey:@"Name"];
         [playingSheet addButtonWithTitle:name];
     }
     [playingSheet showInView:self.view];
     [playingSheet release];

Проблема в моем случае, self.view является подпредставлением parentView и загружается из XIB и не является полноэкранным. Так что проблема в том, что мой лист действий похож на половину ширины экрана iPhone, и он даже не касается нижней части экрана. В моем случае, как бы я это исправить, чтобы он был самым верхним (чтобы пользователи могли видеть его правильно) и как должен выглядеть обычный actionSheet?

Спасибо!

Редактировать: это было исправление:

[playingSheet showInView:[UIApplication sharedApplication].keyWindow];

Ответы [ 2 ]

3 голосов
/ 27 июля 2011

Вам нужно установить рамку листа действий как

[playingSheet setFrame:CGRectMake(0, theHeightYouWant, 320, yourDesiredHeight)];

«theHeightYouWant» - это высота, на которую вы должны сместить лист действий вверх / вниз, чтобы поместить его в правильное положение на экране. Вы можете изменить это методом проб и ошибок. Например, если ваш self.view находится в нижней половине экрана, «theHeightYouWant» будет отрицательным!

2 голосов
/ 27 июля 2011

В зависимости от того, как настроен ваш код, вы можете попробовать использовать self.parentViewController.view, self.view.window, self.view.superview или любые другие вещи.Вам нужно предоставить больше информации, если вы хотите более подробный ответ.

...