Sto cercando di inserire una sovrapposizione sopra la barra di stato effettuando le seguenti operazioni:
Implementazione di ViewController
- (IBAction)addViewOnTop:(id)sender {
StatusBarOverlayWindow *overlay = [[ACStatusBarOverlayWindow alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
overlay.hidden = NO;
[overlay makeKeyAndVisible];
}
File di intestazione StatusBarOverlayWindow
#import <UIKit/UIKit.h>
@interface StatusBarOverlayWindow : UIWindow {
}
@end
Implementazione StatusBarOverLayWindow
@implementation StatusBarOverlayWindow
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
// Place the window on the correct level and position
self.windowLevel = UIWindowLevelStatusBar + 1;
self.frame = frame;
self.backgroundColor = [UIColor orangeColor];
}
return self;
}
@end
Quando clicco su un pulsante, non succede nulla. Qualcuno ha qualche idea su questo problema. Per favore guida, grazie
risposte:
2 per risposta № 1Prova a mantenere un forte riferimento al StatusBarOverlayWindow
, senza che la variabile andrà fuori campo dopo il addViewOnTop:
il metodo è completo Una proprietà funzionerà bene qui.
Esempio:
@interface ViewController : UIViewController
@property (nonatomic, strong) StatusBarOverlayWindow *overlayWindow;
@end
Quindi nel tuo metodo:
- (IBAction)addViewOnTop:(id)sender {
self.overlayWindow = [[ACStatusBarOverlayWindow alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
overlay.hidden = NO;
[overlay makeKeyAndVisible];
}