15

ここのようなオーバーレイUINavigationBarが必要ですUIView

http://screencast.com/t/ZKXNFcAzVu

カスタムUIViewをナビゲーションバーとしてボタンバックで使用する以外にこれを行う方法はありますか?

4

5 に答える 5

24

アプリケーションのベース ビューにサブビューを追加できます。

[[[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];
}
于 2013-04-12T16:21:06.970 に答える
14

メソッドを使用します。

- (void)bringSubviewToFront:(UIView *)view

したがって、あなたの場合は次のようになります:

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

また、この方法では、これを行う場合を除いて、リボンが完全に表示されないことを忘れないでください:

navigationBar.clipsToBounds = NO;
于 2013-04-12T16:29:05.447 に答える