2013-01-09 12 views
14

muszę nałożyć UINavigationBar z UIView jak tutajJak dodać UIView na pasku nawigacji?

http://screencast.com/t/ZKXNFcAzVu & gt; ">

Czy istnieje sposób, aby to zrobić, jednak stosując niestandardowe UIView z przycisku wstecz jak nav bar?

+1

Jeśli chcesz zrobić tego rodzaju STUF niż lepiej, że używasz niestandardowego Nawigacja utworzony przez UIView. Niż masz nad nim całkowitą kontrolę i możesz dać to, co kiedykolwiek chcesz dać ... – CRDave

Odpowiedz

23

Możesz dodać podrzędny do widoku bazowego Wniosku

[[[UIApplication sharedApplication] keyWindow] addSubview:vMyCustomUIView]; 

aby upewnić się, że pojawia się tylko wtedy, gdy kontroler widoku jest widoczny można go dodać i usunąć w metodach delegatów viewDidAppear i viewDidDisappear. Oto przykład, który pokazuje zachodzące na siebie niebieskie pole.

- (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]; 
} 
+0

W swift 2 ... załóżmy nakładkę: UIView = UIView (frame: CGRectMake (0, 0, UIScreen.mainScreen() .bounds.size.width, UIScreen.mainScreen(). bounds.size.height)) overlay.backgroundColor = UIColorFromHex (0x000000, alpha: 0.7) UIApplication.sharedApplication(). keyWindow! .addSubview (overlay) –

12

Użyj metody:

- (void)bringSubviewToFront:(UIView *)view 

Tak więc w Twoim przypadku to będzie:

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

Ponadto nie należy zapominać, że w ten sposób swoją wstążka nie będzie pokazał całkowicie z wyjątkiem sytuacji, gdy to zrobisz:

navigationBar.clipsToBounds = NO; 
1

I ukryj NavigationBar i zamiast tego dodałeś UIView. Wygląda tak samo jak Navbar. następnie dodaj więcej jednego UIView z czerwoną zakładką. Poza tym daje możliwość animowania zakładki na dotyk osobno.

Jeśli dodałem zakładkę w ten sposób: [navigationBar addSubview: myRibbon]; został ukryty na połowie wielkości

0

Oto Swift 3 odpowiedź

UIApplication.shared.keyWindow?.addSubview(menuView) 
Powiązane problemy