Есть ли полный pagecurl?обновленный - PullRequest
6 голосов
/ 08 июля 2011

Хорошо, мне очень нравится эффект PageCurl, только одна проблема: при отправке электронного письма с обратной связью из приложения partPageCurl покрывает кнопку отмены и большую часть кнопки отправки почты. Кнопки все еще работают, но пользователи их не видят. Есть ли способ получить partPageCurl в fullPageCurl, где он почти полностью отключен от экрана? Заранее спасибо! Вот как я сейчас продвигаю представление.

- (IBAction)HelpClicked{

MoreHelp *More = [[MoreHelp alloc] initWithNibName:nil bundle:nil];

More.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:More animated:YES];

[More release]; 
}

Ответы [ 4 ]

4 голосов
/ 20 июля 2011

Проверьте код UICatalog в библиотеке разработчика Apple.Вот ссылка: http://developer.apple.com/library/ios/#samplecode/UICatalog/Introduction/Intro.html

Когда вы запустите его, выберите Transitions в UITableView.См. Действие кнопки «Изображение скручивания». Если это то, что вам нужно ...

Вы найдете curlAction: метод в классе TransitionViewController. По сути, он имеет два изображения в представлении. На основе того, что отображается иЧто было с предыдущим переходом (скручивание вверх или скручивание), оно отображает другое изображение таким образом, как будто вы скручиваете страницу вверх, а затем скручиваете ее вниз. Скручивание изображения полностью исчезает. Я уверен, что вы можете адаптировать его к своемуПользовательский интерфейс.

Это почти то же самое, что и ответ Пейлова, только он использует старую пару setAnimation: commitAnimation.

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

Нет, полный вариант скручивания страницы для UIModalTransitionStyle.

Если это то, что вам нужно, вы должны реализовать это самостоятельно. Это сложнее, чем сделать простой модальный контроллер вида, но выполнимым.

Этот отсканированный код работает только в книжной раскладке по умолчанию и нуждается в настройке для ваших нужд Но я надеюсь, что это даст вам представление о том, что вам нужно сделать:

UIView* view = viewController.view;
view.frame = self.view.window.bounds;
[UIView transitionWithView:self.view.window
                  duration:0.2 
                   options:UIViewAnimationOptionTransitionCurlUp 
                animations:^(void) {
                    [self.view.window addSubview:view];
                } 
                completion:^(BOOL finished) {
                    [viewController.view removeFromSuperview];
                    [viewController presentModalViewController:viewController
                                                      animated:NO];
                }];
1 голос
/ 24 июля 2011

Я бы использовал ответ PeyloW, но есть другой способ. Добавьте UIView к модальному представлению, которое вы собираетесь представить (в viewDidLoad), поместите его в верхний левый угол и задайте ему backgroundColor [UIColor clearColor]. Таким образом, вид не будет виден на экране, но переход из-за скручивания страницы будет вынужден оторваться от экрана, чтобы «показать» вид в верхнем левом углу.

1 голос
/ 20 июля 2011

Отличные предложения PeyloW и xs2bush, безусловно, дадут вам полный скручиваемость страницы. Я подозреваю, что вы после скручивания страницы больше, чем частично, и меньше, чем полная. Я не думаю, что есть API для этого, но как насчет трюка, который может просто сработать?

Используйте метод PeyloW или xs2bush, но также запускайте таймер с длительностью, немного меньшей продолжительности анимации UIViewAnimationOptionTransitionCurlUp.

Когда таймер истекает, остановите анимацию и удалите ее из UIView, который свернулся:

curledView.frame = [[curledView.layer presentationLayer] frame];
[curledView.layer removeAllAnimations];

Надеюсь, это даст вам желаемый эффект.

...