Вертикальная стрелка в UITabBarController

#iphone #uitabbarcontroller

#iPhone #uitabbarcontroller

Вопрос:

Я создаю контроллер панели вкладок в другом контроллере представления. Я хочу добавить вертикальную стрелку на панель вкладок. Я использовал IdevRecipes из github, но он показывает исключение..Вот мой код для добавления tabbarcontroller.

 DropboxHomeViewController *homeView = [[DropboxHomeViewController alloc]initWithNibName:@"DropboxHomeViewController" bundle:nil];
homeView.title=@"More";

UINavigationController *homeNavigation = [[[UINavigationController alloc] initWithRootViewController:homeView]autorelease ];


//tab bar initalization
tabBarController = [[UITabBarController alloc]initWithNibName:nil bundle:nil] ;

//number of tabs in tabbar controller
tabBarController.viewControllers = [NSArray arrayWithObjects:tourNavigation,mapNavigation ,browserNavigation, dropboxNavigation,homeNavigation,nil];
tabBarController.selectedViewController = tourNavigation;
tabBarController.delegate  =self;

//flip animation
tabBarController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;       

[self presentModalViewController:tabBarController animated:YES];
  

Как я могу добавить стрелку в этот код.

код для добавления изображения стрелки

 - (void) addTabBarArrow
{
  UIImage* tabBarArrowImage = [UIImage imageNamed:@"TabBarNipple.png"];
  self.tabBarArrow = [[[UIImageView alloc] initWithImage:tabBarArrowImage] autorelease];
  // To get the vertical location we start at the bottom of the window, go up by height of the tab bar, go up again by the height of arrow and then come back down 2 pixels so the arrow is slightly on top of the tab bar.
  CGFloat verticalLocation = self.window.frame.size.height - tabBarController.tabBar.frame.size.height - tabBarArrowImage.size.height   2;
  tabBarArrow.frame = CGRectMake([self horizontalLocationFor:0], verticalLocation, tabBarArrowImage.size.width, tabBarArrowImage.size.height);

  [self.window addSubview:tabBarArrow];
}
  

Комментарии:

1. Вы говорите об исключении. Можете ли вы опубликовать журналы сбоев?

2. *** Завершение работы приложения из-за неперехваченного исключения ‘CALayerInvalidGeometry’, причина: ‘Позиция CALayer содержит NaN: [nan -1.5]’

3. Можете ли вы опубликовать код анимации? И, пожалуйста, отформатируйте код.

4. github.com/boctor/idev-recipes Я использую этот пример.. Он создается для tabbarapplication, и я создаю контроллер панели вкладок в другом представлении

5. Итак, это работает. Вы используете тот же код?

Ответ №1:

В ViewController, где вы хотите стрелку, используйте

 [[self tabBarItem] setTitle:@"Up Arrow"];
[[self tabBarItem] setImage:[UIImage imageNamed:@"uparrow.png"]];
  

Конечно, сначала вам нужно создать / найти изображение, а затем добавить его в свой проект.

Комментарии:

1. Он будет перемещаться автоматически? Я имею в виду, как приложение Twtiee

2. Нет, это изображение, а не анимация. Какого движения вы пытаетесь достичь?

3. (A) Я понятия не имею, что это значит, поскольку никогда не видел упомянутое вами приложение. (B) Вам следует обновить свой вопрос, добавив более подробную информацию о том, что вам нужно.