iPhone - можно сделать ViewController сквозным или сделать слайд вида снизу? - PullRequest
0 голосов
/ 01 сентября 2011

Я пишу приложение, в котором я хочу, чтобы view / viewController скользил снизу.

Я пытался использовать метод presentModalViewController. Проблема в том, что мне нужен новый viewController, чтобы это можно было увидеть, есть ли способ сделать это?

Я также попытался просто переключиться на представление, где фон seethroug, вместо viewController, используя этот код:

[UIView beginAnimations:@"SlideInFromBottom" context:nil];
[UIView setAnimationDuration:0.2];
[UIView setAnimationDelegate:self];
[UIView setAnimationRepeatCount:0];
[UIView setAnimationRepeatAutoreverses:NO];

if (self.interfaceOrientation == UIInterfaceOrientationPortrait) {

    ToolbarView.frame = CGRectMake(0, 44, 320, 460);
    ToolbarView.frame = CGRectMake(0, 0, 320, 460);

} else if (self.interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {

    ToolbarView.frame = CGRectMake(0, 44, 320, 460);
    ToolbarView.frame = CGRectMake(0, 0, 320, 460);


} else if (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft) {

    ToolbarView.frame = CGRectMake(0, 44, 480, 300);
    ToolbarView.frame = CGRectMake(0, 0, 480, 300);


} else if (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight) {

    ToolbarView.frame = CGRectMake(0, 44, 480, 300);
    ToolbarView.frame = CGRectMake(0, 0, 480, 300);

} 

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

Так что любые предложения будут оценены:)

PS: представление, которое я пытаюсь загрузить, содержит только панель инструментов.

1 Ответ

0 голосов
/ 01 сентября 2011

Если вы хотите создавать свои собственные анимации, вам нужно настроить их следующим образом:

ToolbarView.frame = START POSITION
[UIView beginAnimations: ...];
ToolbarView.frame = END POSITION
[UIView commitAnimations];

Другими словами, «begin» просматривает виды и устанавливает начальные позиции;«commit» смотрит снова и устанавливает окончательные позиции.

Вам не нужно возиться с interfaceOrientation;ориентация ToolbarView будет соответствовать его суперпредставлению, поэтому просто добавьте его как подпредставление представления контроллера верхнего вида.

Наконец, вы можете захотеть взглянуть на свойство inputView в UIControl.По сути, вы можете создать собственный элемент управления, и, если он станет первым респондентом, iOS позаботится о том, чтобы сдвинуть inputView снизу экрана.(Если вы хотите пойти по этому пути, вам придется провести дополнительное исследование, поскольку оно выходит за рамки этого вопроса.)

...