//
// CCUIWindow.h
// CCFC
//
//
#import <Foundation/Foundation.h>
#import "CCConfig.h"
@interface UIWindow(cc)
//
+ (UIWindow *)addImgToStatusBar:(UIImage *)img withRect:(CGRect)imgRect;
+ (void)addImgToWindow:(UIImage *)img withRect:(CGRect)imgRect;// not ok
+ (NSArray *)logAllWindows;
- (void)getSubViewIsMemberOf:(NSString *)viewStr
array:(NSMutableArray *)outArray
maxSize:(int)maxSize;
// alloc a window that is mainscreen bounds
+ (UIWindow *)allocMainScreenWindow;;
#if CC_ENABLE_PRIVATE_API && CC_COMPILE_PRIVATE_CLASS
// uses private api
// 获取UITextEffectsWindow的指针
+ (UIWindow *)getTextEffectsWindow;
#endif
@end
//
// CCUIWindow.m
// CCFC
//
//
#import "CCUIWindow.h"
#import "CCLog.h"
@implementation UIWindow(cc)
//
+ (UIWindow *)addImgToStatusBar:(UIImage *)img withRect:(CGRect)imgRect
{
CGRect frame = {{0,0}, {320,20}};
UIWindow *wnd = [[UIWindow alloc] initWithFrame:frame];
// [UIApplication sharedApplication].statusBarHidden = YES;
// [wnd setBackgroundColor:[UIColor clearColor]];
[wnd setWindowLevel:UIWindowLevelAlert];
UIImageView *imgView = [[UIImageView alloc] initWithFrame:imgRect];
[imgView setContentMode:UIViewContentModeScaleAspectFit];
// UIImage *scaledImg = [img scale:0.5];
[imgView setImage:img];
[wnd addSubview:imgView];
[imgView release];
[wnd makeKeyAndVisible];
return wnd;
}
// not ok
+ (void)addImgToWindow:(UIImage *)img withRect:(CGRect)imgRect
{
UIWindow *window = [[UIApplication sharedApplication] keyWindow];
[window setWindowLevel:UIWindowLevelStatusBar];
UIImageView *imgView = [[UIImageView alloc] initWithFrame:imgRect];
[imgView setContentMode:UIViewContentModeCenter];
[imgView setImage:img];
[window addSubview:imgView];
[imgView release];
}
+ (NSArray *)logAllWindows
{
NSArray *arr = [[UIApplication sharedApplication] windows];
LOG_ID(arr);
return arr;
}
- (void)getSubViewIsMemberOf:(NSString *)viewStr
array:(NSMutableArray *)outArray
maxSize:(int)maxSize
{
[super getSubViewIsMemberOf:viewStr array:outArray maxSize:maxSize];
}
// alloc a window that is mainscreen bounds
+ (UIWindow *)allocMainScreenWindow
{
return [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
}
#if CC_ENABLE_PRIVATE_API && CC_COMPILE_PRIVATE_CLASS
// uses private api
// 获取UITextEffectsWindow的指针
+ (UIWindow *)getTextEffectsWindow
{
Class cls = NSClassFromString(@"UITextEffectsWindow");
return [cls sharedTextEffectsWindow];
}
#endif
@end
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。
欢迎关注。助您在编程路上越走越好!