मैं निम्न कार्य करके स्टेटस बार के शीर्ष पर ओवरले लगाने की कोशिश कर रहा हूं:
ViewController कार्यान्वयन
- (IBAction)addViewOnTop:(id)sender {
StatusBarOverlayWindow *overlay = [[ACStatusBarOverlayWindow alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
overlay.hidden = NO;
[overlay makeKeyAndVisible];
}
StatusBarOverlayWindow शीर्षलेख फ़ाइल
#import <UIKit/UIKit.h>
@interface StatusBarOverlayWindow : UIWindow {
}
@end
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
जब मैं एक बटन पर क्लिक करता हूं, तो कुछ भी नहीं होता है। क्या किसी को इस मुद्दे के बारे में कोई विचार है। कृपया मार्गदर्शन करें, धन्यवाद
उत्तर:
जवाब के लिए 2 № 1एक मजबूत संदर्भ रखने का प्रयास करें StatusBarOverlayWindow
, इसके बिना चर के बाद चर के बाहर जाना होगा addViewOnTop:
विधि पूरी हो गई है। एक संपत्ति यहां अच्छी तरह से काम करेगी।
उदाहरण:
@interface ViewController : UIViewController
@property (nonatomic, strong) StatusBarOverlayWindow *overlayWindow;
@end
फिर आपकी विधि में:
- (IBAction)addViewOnTop:(id)sender {
self.overlayWindow = [[ACStatusBarOverlayWindow alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
overlay.hidden = NO;
[overlay makeKeyAndVisible];
}