/ / kann keine Ansicht über der Statusleiste anzeigen, uiwindow, objective-c, ios7, uiwindow

kann keine Ansicht über der Statusleiste anzeigen, uiwindow, objective-c, ios7, uiwindow

Ich versuche, ein Overlay über die Statusleiste zu setzen, indem ich Folgendes tue:

ViewController-Implementierung

- (IBAction)addViewOnTop:(id)sender {
StatusBarOverlayWindow *overlay = [[ACStatusBarOverlayWindow alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
overlay.hidden = NO;
[overlay makeKeyAndVisible];
}

StatusBarOverlayWindow-Headerdatei

#import <UIKit/UIKit.h>

@interface StatusBarOverlayWindow : UIWindow {
}
@end

StatusBarOverLayWindow-Implementierung

@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

Wenn ich auf eine Schaltfläche klicke, passiert gar nichts. Hat jemand irgendwelche Gedanken zu diesem Thema? Bitte führen, danke

Antworten:

2 für die Antwort № 1

Versuchen Sie, einen starken Bezug zu halten StatusBarOverlayWindow, ohne dass die Variable nach dem addViewOnTop: Methode ist abgeschlossen. Eine Immobilie wird hier gut funktionieren.

Beispiel:

@interface ViewController : UIViewController

@property (nonatomic, strong) StatusBarOverlayWindow *overlayWindow;

@end

Dann in Ihrer Methode:

- (IBAction)addViewOnTop:(id)sender {
self.overlayWindow = [[ACStatusBarOverlayWindow alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
overlay.hidden = NO;
[overlay makeKeyAndVisible];
}