使 UINavigationBar 更短

Making the UINavigationBar Shorter

我见过几个应用程序 UINavigationBar。喜欢 Whosebug iOS 应用程序。

我们如何实现这一目标?

如果您打开多个带有导航栏的应用程序,您可以在双击主页按钮时看到您的语句是错误的(以查看它们整齐排列)。

例如,比较 Facebook、Whatsapp、YouTube、Pages 和 Messages,它们的大小都相同。所以除非它们都缩小到相同的大小,否则我会说它们根本没有缩小!

最重要的是,我建议您不要 "change" 您的导航栏太多,因为它是您用户的重要枢轴点,更改它会 "disturbing"。根据您的意愿自定义它,但有一些限制。

如果你只是想降低它的高度,我想你可以简单地使用导航栏属性:

self.navigationController.navigationBar setFrame:<#(CGRect)#>

self.navigationController.navigationBar.frame.size.height = //yourFloatValue.

应该就可以了!

试试这个:

-(void)viewDidLayoutSubviews{ 
   CGRect temp=self.navigationController.navigationBar.frame;
   [self.navigationController.navigationBar setFrame:CGRectMake(temp.origin.x, 40, temp.size.width, temp.size.height)]; 
}

据我所知,我认为您无法编辑导航栏的高度(用于用户体验目的)。但是您可以隐藏它并创建自己的自定义视图并将其放置在屏幕顶部。

您可以使用此代码隐藏导航栏

self.navigationController.navigationBar.hidden = YES;

然后您创建自己的自定义视图,如下所示

CGRect barFrame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 65);
UIView *customeBar = [[UIView alloc] initWithFrame:barFrame];    
[self.view addSubview:customeBar];    
UIButton *navButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[navButton addTarget:self action:@selector(aMethod:) forControlEvents:UIControlEventTouchUpInside];
[navButton setTitle:@"" forState:UIControlStateNormal];
[navButton setBackgroundImage:[UIImage imageNamed:@"someImage.png"] forState:UIControlStateNormal];
navButton.frame = CGRectMake(10, 10, 56.0, 56.0);
[customeBar addSubview:navButton];