Как добавить UIView на панель навигации? - программирование

Как добавить UIView на панель навигации?

Мне нужно наложение UINavigationBar с UIView как здесь

http://screencast.com/t/ZKXNFcAzVu>" >

Есть ли способ сделать это, кроме использования пользовательского UIView с кнопкой назад в качестве панели навигации?

4b9b3361

Ответ 1

Вы можете добавить 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];
}

Ответ 2

Используйте метод:

- (void)bringSubviewToFront:(UIView *)view

Итак, в вашем случае это будет:

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

Также не забывайте, что таким образом ваша лента не будет отображаться полностью, за исключением случаев, когда вы делаете это:

navigationBar.clipsToBounds = NO;

Ответ 3

Я скрываю NavigationBar и вместо этого добавляет UIView. Он выглядит так же, как Navbar. затем добавьте еще один UIView с красной закладкой. Кроме того, он дает возможность анимировать закладки прикосновением отдельно.

Если я добавил закладку таким образом: [navigationBar addSubview: myRibbon]; он был скрыт на половине размера

Ответ 4

Здесь ответ Swift 3

UIApplication.shared.keyWindow?.addSubview(menuView)