2013-04-07 3 views
0

Я пытаюсь подражать тому, как TweetBot/NetBot анимирует tabBar после нажатия команды tableView of Accounts. Когда представление полностью выдвинуто, только тогда таба анимируется снизу. Я пробовал все виды методов hide/show, и все, кажется, терпят неудачу, когда дело доходит до части «шоу».Как можно активировать tabBar после просмотра?

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

ответ

0

Прежде всего, я предполагаю, что вы не используете UITabViewController, поскольку он не может быть перенесен в стек UINavigationController, поэтому я думаю, что вы используете автономный UITabBar, встроенный в UIViewController. Правильно ли это предположение?

Попробуйте использовать этот код (я не пробовал).

- (void)viewDidAppear { 
    [super viewDidAppear]; 

    // Calls showTabBar method after SOME_DELAY. You can also call directly [self showTabBar] if you want zero delay. 
    [self performSelector:@selector(showTabBar) afterDelay:SOME_DELAY]; 
} 

- (void)showTabBar { 
    // Before the animation begins, your UITabBar must be outside the view controller's view frame. 
    CGRect tabBarFrame = CGRectMake(0, 
            CGRectGetHeight(self.view.bounds), 
            CGRectGetWidth(self.view.bounds), 
            CGRectGetHeight(self.tabBar.frame); 
    self.tabBar.frame = tabBarFrame; 

    // Let's start with the animation, setting a new frame for tab bar inside an animation block 
    [UIView animateWithDuration:ANIMATION_DURATION animations:^{ 
     // Change origin Y. It assumes that the height of self.tabBar is right, otherwise put the height you want instead of CGRectGetHeight(self.tabBar.frame). 
     tabBarFrame.origin.y = CGRectGetHeight(self.view.bounds) - CGRectGetHeight(self.tabBar.frame); 

     self.tabBar.frame = tabBarFrame; 
    }]; 
} 
+0

ОК, я * был * с помощью NavController -> TabBarController перед вашим ответом. Поскольку Раскадровка позволила мне сделать это, и все это сработало, я предположил, что все в порядке. Вы говорите, что мне нужно использовать обычный VC и просто свернуть собственный Tabbarcontroller? Я могу анимировать таблетку из виду просто отлично, но показ ее после этого довольно беспорядочен, если вы вообще работаете. – Mike

+0

[Документация] (http://bit.ly/hUDRwc) около UINavigationController гласит: 'pushViewController: анимированные:' _ "Этот объект не может быть экземпляром контроллера панели вкладок" _ 'initWithRootViewController:' _» Этот объект не может быть экземпляром класса UITabBarController. "_ Во всяком случае, возможно, нажатие на него может работать, но я не знаю, может ли это вызвать какое-то неправильное поведение. Вы уверены, что вам действительно нужно нажать его в стек nav? Возможно, вы могли бы достичь того же результата, просто скрывая вкладку, когда это необходимо. Вы пробовали мой код для анимации, кстати? –

+0

Решил пойти в другом направлении, пока не смогу это понять. Спасибо за попытку помочь Алессандро :) – Mike

Смежные вопросы