Мне нужно наложение UINavigationBar
с UIView
как здесь
http://screencast.com/t/ZKXNFcAzVu>" >
Есть ли способ сделать это, кроме использования пользовательского UIView с кнопкой назад в качестве панели навигации?
Мне нужно наложение UINavigationBar
с UIView
как здесь
http://screencast.com/t/ZKXNFcAzVu>" >
Есть ли способ сделать это, кроме использования пользовательского UIView с кнопкой назад в качестве панели навигации?
Вы можете добавить subview в базовый вид приложения
[[[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)