Как отобразить UIActionSheet чуть ниже верхней строки состояния навигации на iPhone - PullRequest
6 голосов
/ 14 января 2010

Я хотел бы отобразить лист действий, скользящий из-под самой верхней строки состояния.

Когда я использую панель навигации в качестве вида для отображения, лист все равно отображается в нижней части экрана. Как я могу показать, что он идет сверху?

Класс, из которого я вызываю следующий код, является 'UIViewController'

UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"Hello" delegate:nil 
          cancelButtonTitle:nil 
          destructiveButtonTitle:nil 
          otherButtonTitles:nil];

UINavigationBar *navBar = self.navigationController.navigationBar;

[sheet showInView:navBar];

Я видел, что некоторые приложения показывают какой-то выдвижной ящик, где находится строка состояния (например, Twitterrific). Как это сделать?

Ответы [ 2 ]

4 голосов
/ 14 января 2010

Apple заявила, что они просто хотели бы, чтобы все листы действий работали одинаково и скользили в одном направлении. Следовательно, нет никакого рекламируемого способа легко манипулировать их анимацией и тому подобным.

0 голосов
/ 30 января 2010

Конечно, это возможно. Не очень легко, но это так. Сделайте это так:

UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle...];
sheet.transform = CGAffineTransformmakeRotation(M_PI);
[sheet showInView:view];

Представление, в котором оно представлено (здесь называемое представлением), также должно быть преобразовано. Делай также:

view.transform = CGAffineTransformMakeRotation(M_PI);

Используйте, например, пустое представление, у которого просто есть задача представить этот ActionSheet.

Надеюсь, это было понятно. ^^

Сандро Мейер

...