ios8之后使用UIWinodw悬浮于其他app之上却卡住app运行

之前我在ios7时候的code,大概是要在别的app启动的时候外挂一个界面浮在app运行界面上。
@interface SBApplication

  • (void)didActivate
    hook住的是这个api,同时会
    uiWindow = [UIWindow alloc] initWithFrame:[UIScreen mainScreen] bounds]];
    uiWindow.windowLevel = UIWindowLevelStatusBar;

同时给uiwindow做一个viewController,这个uiwindow是全屏透明的,我会在viewController里面addsubview做一些小的界面。本身uiwinodw里透明的部分是可以击穿,操作app的。

现在问题来了?挖掘机你走开~
ios8上同样的代码逻辑,uiWindow出现的时候会卡死住整个运行的app,app完全不运行了,所有ios的手势交互在这个画面上也不能用了。
ios8要怎么写这样悬浮的uiwindow比较合理呢
@snakeninny
最后已解决,先调%ori居然就可以了,奇怪

ios8我hook住willActivate这个方法,之前的didActivate已经没有了

卡死App是什么意思?透明window之下的App完全不动了么?还是没法响应点击操作?

完全不运行了,不仅是操作没法响应,挺奇怪的,相同的deb用在ios7及以前的都没有这种情况

你有没有%orig?
你找一个带广告的App,看看广告还动不动了,正常情况下完全不运行我觉得是不合理的

写了%orig了,这种问题不会犯的,不过我是用ios7的sdk编译的在ios8上运行,不清楚会不会有什么影响

肯定会有影响啊!

楼主,请问你的悬浮window是怎么做到击穿效果的,我在Springboard里创建的window,设置userInteractionEnabled = NO,但它悬浮在其他app上方时,窗口下方的app无法操作

w = [UIWindow new];
w.userInteractionEnabled = NO;
w.frame = CGRectMake(100, 100, 100, 100);
w.backgroundColor = [UIColor redColor];
w.windowLevel = UIWindowLevelAlert;
[w makeKeyAndVisible];