我需要覆盖UINavigationBar
用UIView
喜欢这里
有没有办法做到这一点,除了使用自定义的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;
我隐藏导航栏和添加的UIView来代替。 它看起来一样的导航栏。 然后用红色的书签添加更多一个UIView的。 在它旁边的可能性给予单独动画触摸书签。
如果我添加的书签是这样的:[的导航栏addSubview:myRibbon]。 它被隐藏在大小的一半
这里有一个斯威夫特3回答
UIApplication.shared.keyWindow?.addSubview(menuView)