ios CCUIWindow.m

//
//  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等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值