анимация изменения вида с помощью uitabbarcontroller - PullRequest
1 голос
/ 13 июля 2011

Я хочу анимировать изменение моего представления, однако я не уверен, куда поместить свою анимацию, так как у меня есть UITabBarController, управляющий тем, какой вид я вижу, и что я тоже могу переключать. Это объявлено в моем appdelegate.mфайл в соответствии с шаблоном xcode.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
    UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
    self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    return YES;
}

Или это область в каждом view-контроллере, куда загружается все ... Я думаю, что здесь может быть лучше инициализировать анимацию.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.title = NSLocalizedString(@"Super", @"Super");
        self.tabBarItem.image = [UIImage imageNamed:@"SuperIcon"];
    }
    return self;
}

Так как я не делал много анимации с представлениями, прежде чем начать изучать, где я мог бы объявить этот кусочек кода, который, мы надеемся, оживит мое изменение представления при касании UITabBarButton ....

[UIView transitionWithView:containerView
           duration:0.2
           options:UIViewAnimationOptionTransitionFlipFromLeft
           animations:^{ [fromView removeFromSuperview]; [containerView addSubview:toView]; 
           completion:NULL];

или я пропустил лодку полностью, и я должен этим заняться где-то еще?

Ответы [ 2 ]

2 голосов
/ 13 июля 2011

Попробуйте следующий код в методе viewWillAppear

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.4];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft
                       forView:self.view cache:YES];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView commitAnimations];

Это сработало для меня для приложения на основе контроллера tabBar.

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

Попробуйте эту анимацию в коде в методе viewWillAppear

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