如何在导航栏上添加UIView?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在导航栏上添加UIView?相关的知识,希望对你有一定的参考价值。

我需要像UINavigationBar一样叠加UIView

有没有办法做到这一点,除了使用自定义UIView按钮返回导航栏?

答案

您可以将子视图添加到应用程序的基本视图中

[[[UIApplication sharedApplication] keyWindow] addSubview:vMyCustomUIView];

要确保仅在视图控制器可见时显示,您可以在viewDidAppearviewDidDisappear委托方法中添加和删除它。这是一个显示蓝色框重叠的示例。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.    
    vTestView = [[UIView alloc] initWithFrame:CGRectMake(10.0f,
                                                         10.0f,
                                                        100.0f,
                                                        100.0f)];
    vTestView.backgroundColor = [UIColor blueColor];
}


-(void)viewDidAppear:(BOOL)animated
{
    [[[UIApplication sharedApplication] keyWindow] addSubview:vMyCustomUIView];
}
-(void)viewDidDisappear:(BOOL)animated
{
    [vMyCustomUIView removeFromSuperview];
}
另一答案

使用方法:

- (void)bringSubviewToFront:(UIView *)view

所以在你的情况下将是:

[navigationBar addSubview:myRibbon];
[navigationBar bringSubviewToFront:myRibbon];

另外请不要忘记,通过这种方式,除非您执行此操作,否则您的功能区将不会完全显示:

navigationBar.clipsToBounds = NO;
另一答案

我隐藏了NavigationBar并添加了UIView。它看起来与Navbar相同。然后添加一个带红色书签的UIView。除此之外,还可以单独触摸书签动画。

如果我这样添加书签:[navigationBar addSubview:myRibbon];它隐藏在一半的大小

另一答案

这是Swift 3的答案

UIApplication.shared.keyWindow?.addSubview(menuView)

以上是关于如何在导航栏上添加UIView?的主要内容,如果未能解决你的问题,请参考以下文章

如何在带有更多片段的操作栏上添加后退按钮

UINavigationBar translucent 移除添加在导航栏上的图像

如何在导航栏上添加徽标?

如何在导航栏上添加带有动画的广告? [关闭]

如何在导航栏上添加侧菜单关闭按钮

如何删除和添加导航栏上的“返回按钮”