UIModalTransitionStylePartialCurl половина страницы - PullRequest
5 голосов
/ 08 августа 2011

Я отображаю UIViewController следующим образом:


MyViewController *myVc = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[myVc setModalTransitionStyle:UIModalTransitionStylePartialCurl];
[self presentModalViewController:myVc animated:YES];

Если я рисую вид MyViewController, переход повлияет только на половину страницы (что я хочу).

В моем случае я рисую весь вид MyViewController, поэтому переход влияет на весь вид

Если я рисую только половину вида, переход вступает в силу на половине экрана, но у меня все еще есть «мертвая область», которая отображается и не рисуется.

enter image description here

Мой вопрос заключается в том, как переход может повлиять только на половину экрана (как на рисунке), но я все еще могу нарисовать весь вид, поэтому, даже если переход показывает только половину экрана, всю отображаемую область будет нарисовано

Ответы [ 4 ]

4 голосов
/ 14 июня 2012

iOS использует только дочерние элементы первого уровня UIView, чтобы решить, где разместить частичный скручивание страницы.Это позволяет вам добавить дочерний вид 2-го уровня с рамкой, например, (0, -50, 320, 100), которая скользит в область, которую вы называете «мертвой областью».

1 голос
/ 29 октября 2012

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

- (void)viewDidLoad {
    [super viewDidLoad];

    //BG
    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"StitchTileBG.png"]];
}

Оставить с использованием представлений и т. Д. Для реальных элементов пользовательского интерфейса

0 голосов
/ 26 октября 2011
MyViewController * myVc = [[MyViewController alloc] initWithNibName:nil bundle:nil];
[UIView beginAnimations:@"flipPage" context:NULL];
[UIView setAnimationDuration:2];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
[self.view addSubview:myVc.view];
[UIView commitAnimations];
0 голосов
/ 08 августа 2011

В чем здесь проблема?Заполните содержимое в modalView таким образом, чтобы использовалась видимая область.Если я не ошибаюсь, эффект modalPageCurl не имеет возможности установить степень скручивания (или какую часть экрана он должен занимать).

Поэтому я предлагаю вам пропустить этот подход и сосредоточиться на попыткепокрыть (или использовать) как можно больше экрана ...

...