UINavigationBar 总结

时间:2021-11-17 13:23:42

一、某个 ViewController 出现隐藏 NavigationBar

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:NO];
} - (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:NO];
}

二、调整 NavigationBar 高度

原文

  1、介绍

    1) 默认是 44 个像素点。

  2、使用

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view. self.title = @"AAAAA"; UIBarButtonItem* leftBarButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Action_Moments.png"]
style:UIBarButtonItemStyleBordered target:self
action:@selector(onclickBackBarButton)];
self.navigationItem.leftBarButtonItem = leftBarButton;
} - (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated]; CGRect rect = self.navigationController.navigationBar.frame;
rect.size.height = 100.0f;
self.navigationController.navigationBar.frame = rect; [self.navigationController.navigationBar setTitleVerticalPositionAdjustment:-40.0f forBarMetrics:UIBarMetricsDefault]; // [self.navigationItem.backBarButtonItem setBackgroundVerticalPositionAdjustment:-40.0f forBarMetrics:UIBarMetricsDefault]; // 对系统自带的 backBarButton 不起作用 [self.navigationItem.leftBarButtonItem setBackgroundVerticalPositionAdjustment:-40.0f forBarMetrics:UIBarMetricsDefault];
} - (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated]; CGRect rect = self.navigationController.navigationBar.frame;
rect.size.height = 44.0f;
self.navigationController.navigationBar.frame = rect;
}

  UINavigationBar 总结

    注意:

      1) 如果使用系统默认的 backBarButton 是不能调整高度的。

      2) 只有自定的 barButtonItem,而且使用以下初始化,才可以调整其高度。

        

- (id)initWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action