What's the best way to add a view under UINavigationBar in iOS7

后端 未结 1 835
野的像风
野的像风 2021-01-19 18:49

On ios7, a lot of apps (Apple Messages, Facebook Messenger, Calendar)have views appearing under the UINavigationBar, often with what seems to be standard animation. As it se

相关标签:
1条回答
  • 2021-01-19 19:16

    You should follow this simple approach.

    • Add a UIToolBar like this.

      UIBarButtonItem *flexiableItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
      UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:nil];
      UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:nil];
      
      NSArray *items = [NSArray arrayWithObjects:item1, flexiableItem, item2, nil];
      self.toolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, -44, self.view.frame.size.width, 44)];
      [self.toolBar setItems:items];
      self.toolBar.tintColor = [UIColor whiteColor];
      self.toolBar.barTintColor = [UIColor colorWithRed:0.6 green:0.1 blue:0.2 alpha:1];
      [self.contentView addSubview:self.toolBar];
      
    • Add a Menu Button on Top navigation item

      self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Menu" style:UIBarButtonItemStyleBordered target:self action:@selector(toggleMenu:)];
      
    • Now Implement toggleMenu function. Add a BOOL variable to track the movement.

      if(!moved) {
      [UIView animateWithDuration:0.5 animations:^{
          self.toolBar.alpha = 1;
          self.toolBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 44);
      }];
      moved = YES;
      }else {
      [UIView animateWithDuration:0.5 animations:^{
          self.toolBar.alpha = 1;
          self.toolBar.frame = CGRectMake(0, -44, self.view.frame.size.width, 44);
      }];
      moved = NO;
      }
      
    • Here is the attached video for this.

    Hope that helps.

    0 讨论(0)
提交回复
热议问题