【问题标题】:Making the UINavigationBar Shorter使 UINavigationBar 更短
【发布时间】:2015-03-30 07:26:20
【问题描述】:

我见过几个UINavigationBar 更短的应用程序。就像StackOverFlow iOS 应用一样。

我们如何实现这一目标?

【问题讨论】:

    标签: ios objective-c xcode uinavigationbar


    【解决方案1】:

    试试这个:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

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

      应该这样做!

      【讨论】:

      • 第二个代码示例无法编译。您不能在 CGRect 上显式设置 height 属性。
      【解决方案3】:

      据我所知,我不相信您可以编辑导航栏的高度(出于 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];
      

      【讨论】:

      • @annu 存在复制粘贴问题,但已修复。如果有任何其他使上述代码不正确的代码,请解释。
      • @Cmsoll 一个用户不知道复制粘贴错误,所以无论写什么编码都应该是正确的。
      • @annu 其实我忘了谢谢你告诉我这个问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 2014-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多