2014-02-17 2 views
1

Я пытаюсь создать объект типа picker, когда нажата одна из button на UITabBar. Если вы посмотрите на приложение iphone tumblrs, вы увидите, что я имею в виду. Я предполагаю, что они представляют UIView над любым viewcontroller пользователем в данный момент. Как мне это сделать?Отображение вида из UITabBar

enter image description here

ответ

3

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

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

  1. Добавить пользовательскую кнопку в середине панели вкладок. (Добавить следующий код в viewWillAppear первого контроллера представления)

    - (void)viewWillAppear:(BOOL)animated 
    { 
        UIImage *buttonImage = [UIImage imageNamed:@"classic-batman-logo.jpg"]; 
        UIImage *highlightImage = [UIImage imageNamed:@"classic-batman-logo.jpg"]; 
        UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom]; 
        button.frame = CGRectMake(0.0, 0.0, 60, 50); 
        [button setBackgroundImage:buttonImage forState:UIControlStateNormal]; 
        [button setBackgroundImage:highlightImage forState:UIControlStateHighlighted]; 
    
        button.center = CGPointMake(self.tabBarController.tabBar.center.x , 30); 
        [button addTarget:self action:@selector(centerButtonClicked) forControlEvents:UIControlEventTouchUpInside]; 
        [self.tabBarController.tabBar addSubview:button]; 
    } 
    
  2. затем просто представить свой целевой контроллер представления в функции centerButtonClicked

    - (void)centerButtonClicked 
    { 
        UIViewController *vc = [[UIViewController alloc]init]; 
        vc.view.backgroundColor = [UIColor redColor]; 
        [self presentViewController:vc animated:YES completion:nil]; 
    } 
    

Это просто тесты 10 минут я было бы, должно быть:

enter image description here

Может быть, есть несколько вещей, которые вы хотите обратить внимание:

  • изменение жесткого закодированы точки центра, когда вы реализовать свой собственный код,

  • и даже лучше, вы можете создать собственный TabBar с этой центральной кнопкой и настройте метод делегата для этой функции нажатия кнопки. Поэтому каждый раз, когда вы нажимаете эту кнопку с другого контроллера, у него будет другое поведение.

Надеюсь, что вы получите некоторое приблизительное представление о том, как этого достичь.

+0

Таким образом, основная проблема заключается в том, что я хотел бы, чтобы фон для отображаемого контроллера представления был размытым над контроллером представления, поэтому был бы размытый слой поверх исходного контроллера представления с помощью кнопок сверху. Если вы посмотрите на тумблер, на который вы нажимаете, это фон для кнопок – matthew

+0

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

+0

Хотя панель вкладок может быть немного старомодной сейчас, я никогда не был поклонником слайда с бокового контроллера, например, используемого facebook. Я также думаю, что TabBar отлично смотрится с размытием ios 7 и прекрасно дополняет UINavigationBar. – matthew

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