Перевернуть вид, как сейчас играет в iTunes? - PullRequest
0 голосов
/ 21 марта 2012

У меня есть приложение, которое имеет много просмотров для различных целей. Внутри одного из них я хотел бы использовать существующий вид в качестве «фона», а затем вставить вид, который будет отображаться внутри, - это очень похоже на вид «Сейчас исполняется» на iPhone / iPod, где обложка альбома переворачивается между изображение и списки треков. Может ли кто-нибудь указать мне правильное направление?

1 Ответ

4 голосов
/ 21 марта 2012

Взгляните на Apple View Руководство по программированию контроллера для iOS . Я предполагаю, что самым простым способом было бы использовать модальное представление с UIModalTransitionStyleFlipHorizontal, установленным в качестве стиля перехода (см. «Представление контроллера вида и выбор стиля перехода» в руководстве, которое я опубликовал).

Учебники:
- http://timneill.net/2010/09/modal-view-controller-example-part-1/
- http://timneill.net/2010/11/modal-view-controller-example-part-2/

EDIT

Полагаю, вы используете UINavigationController, так что вот пример ViewController, который сохраняет панель навигации видимой. Просто поместите второй вид в контроллер вида и скройте его. Чем реализовать метод (я использовал IBAction, который я подключаю к кнопке с помощью InterfaceBuilder), который переключается между этими представлениями:

ViewController.h:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
    UIView *backSideView;
}

- (IBAction)switchViews:(id)sender;

@end

ViewController.h:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController


- (void)viewDidLoad
{
    [super viewDidLoad];
    backSideView = [[UIView alloc] initWithFrame:[self view].bounds];
    [backSideView setBackgroundColor:[UIColor greenColor]];

    // ... put stuff you want inside backSideView ...

    [backSideView setHidden:YES];
    [[self view] addSubview:backSideView];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

- (IBAction)switchViews:(id)sender
{
    if ( [backSideView isHidden] )
    {
        [UIView transitionWithView:self.view 
                          duration:1.0 
                           options:UIViewAnimationOptionTransitionFlipFromLeft
                        animations:^{ [backSideView setHidden:NO]; } 
                        completion:^(BOOL finished){ [self setTitle:@"BackView"]; }
         ];
    }
    else
    {
        [UIView transitionWithView:self.view 
                          duration:1.0 
                           options:UIViewAnimationOptionTransitionFlipFromRight
                        animations:^{ [backSideView setHidden:YES]; } 
                        completion:^(BOOL finished){ [self setTitle:@"FrontView"]; }
         ];
    }
}

@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...