如何添加的UIView在导航栏?(How to add UIView over navigation

2019-08-06 03:44发布

我需要覆盖UINavigationBarUIView喜欢这里

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

Answer 1:

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

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


Answer 2:

使用方法:

- (void)bringSubviewToFront:(UIView *)view

所以你的情况,这将是:

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

另外,不要忘记,这样,你的丝带不会完全如果你这样做,除了表明:

navigationBar.clipsToBounds = NO;


Answer 3:

我隐藏导航栏和添加的UIView来代替。 它看起来一样的导航栏。 然后用红色的书签添加更多一个UIView的。 在它旁边的可能性给予单独动画触摸书签。

如果我添加的书签是这样的:[的导航栏addSubview:myRibbon]。 它被隐藏在大小的一半



Answer 4:

这里有一个斯威夫特3回答

UIApplication.shared.keyWindow?.addSubview(menuView)


文章来源: How to add UIView over navigation bar?