在 Springboard 上显示自定义 UIView(越狱)
Posted
技术标签:
【中文标题】在 Springboard 上显示自定义 UIView(越狱)【英文标题】:Displaying a Custom UIView on Springboard (Jailbreak) 【发布时间】:2014-05-07 10:18:14 【问题描述】:我以编程方式创建了一个自定义 UIView。有谁知道我会用什么类和什么方法在跳板上显示它?我希望我的 UIView 显示在跳板上,当用户打开应用程序时,我希望它也显示在那里。我一直在搜索私人标头一段时间,但似乎找不到我要找的东西。我正在使用 iosopendev 开发越狱调整。你能告诉我这个类是视图控制器还是视图?
【问题讨论】:
【参考方案1】:如果您希望 UIView 显示在任何地方(在 SpringBoard 和应用程序中),您应该在其他 UIWindow 上方创建一个新的 UIWindow 并在其中显示您的视图,如下所示:
UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
window.windowLevel = UIWindowLevelAlert + 2;
[window setHidden:NO];
[window setAlpha:1.0];
[window setBackgroundColor:[UIColor clearColor]];
[window addSubview:yourView];
【讨论】:
感谢您的回答!我完全没有想到使用 UIWindow.. 你知道我应该挂钩什么类和什么方法吗?我觉得发射方式适合跳板。-(void)applicationDidFinishLaunching:(id)application;
,在 SpringBoard 中,可能是您想要的方法。 (请注意,这也可能在锁屏上显示 UIWindow,具体取决于 windowLevel
的值)。打开应用时,窗口仍然会显示【参考方案2】:
你可以钩住SpringBoard的一些方法,比如:
- (void)applicationDidFinishLaunching:(id)arg1
然后,你的代码应该是这样的:
- (void)applicationDidFinishLaunching:(id)arg1
%orig;
NSLog(@"----- applicationDidFinishLaunching -----");
UIWindow *_uiwindow = [[UIWindow alloc] initWithFrame:CGRectMake(100,100,120,100)];
_uiwindow.windowLevel = UIWindowLevelStatusBar;
_uiwindow.hidden = NO;
[_uiwindow setBackgroundColor:[UIColor redColor]];
要添加更多自定义视图,只需将子视图添加到_uiwindow
。希望对您有所帮助。
【讨论】:
以上是关于在 Springboard 上显示自定义 UIView(越狱)的主要内容,如果未能解决你的问题,请参考以下文章
我的应用在 Springboard 上的名称可以跨越两行吗?
如何让 iPhone SpringBoard 为一个应用程序包显示两个或多个图标?
UIGesture 返回 UIImageView 而不是自定义视图