使UINavigationBar更短

时间:2015-03-30 07:26:20

标签: ios objective-c xcode uinavigationbar

我见过几个版本较短UINavigationBar的应用。就像StackOverFlow iOS应用一样。

我们如何实现这一目标? example screenshot

3 个答案:

答案 0 :(得分:1)

试试这个:

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

答案 1 :(得分:0)

如果您使用导航栏打开多个应用程序,则双击主页按钮时可以看到您的陈述错误(看到它们排成一行)。

比较Facebook,Whatsapp,YouTube,Pages和Messages,它们的大小都相同。因此,除非它们都缩小到相同的尺寸,否则我会说它们根本没有缩小!

现在最重要的是,我建议您不要过多地“更改”导航栏,因为它是您用户的强大支点,更改它会“令人不安”。根据您的意愿定制它,但有一些限制。

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

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

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

那应该这样做!

答案 2 :(得分:0)

据我所知,我不相信你可以编辑导航栏的高度(用于UX目的)。但您可以隐藏它并创建自己的自定义视图并将其放在屏幕顶部。

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

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];