如何在导航栏上添加UIView?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在导航栏上添加UIView?相关的知识,希望对你有一定的参考价值。
我需要像UINavigationBar
一样叠加UIView
有没有办法做到这一点,除了使用自定义UIView按钮返回导航栏?
答案
您可以将子视图添加到应用程序的基本视图中
[[[UIApplication sharedApplication] keyWindow] addSubview:vMyCustomUIView];
要确保仅在视图控制器可见时显示,您可以在viewDidAppear
和viewDidDisappear
委托方法中添加和删除它。这是一个显示蓝色框重叠的示例。
- (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?的主要内容,如果未能解决你的问题,请参考以下文章