以编程方式设置iOS背景/锁屏图像?
Posted
技术标签:
【中文标题】以编程方式设置iOS背景/锁屏图像?【英文标题】:Setting iOS background/lockscreen image programmatically? 【发布时间】:2011-10-08 19:03:58 【问题描述】:我希望能够以编程方式设置锁屏背景图像。我知道这仅适用于越狱的 ios 设备。
以下是我尝试过的一些事情:
在 /private/var/mobile/Library/SpringBoard/ 中放置一个 LockBackground.png。这可行,但需要硬重生。 notify_post("com.apple.language.changed");
不适用于软重弹。
使用class-dump
转储 UIKit 的私有方法。 4.2 中的 UIKit 曾经有一个名为 + (void)setDesktopImageData:(id)fp8;
的方法,但在 4.3 及更高版本中似乎缺少它。
我有什么遗漏的吗?
【问题讨论】:
你为什么不转储 SpringBoard 呢? 我以为我做了,但没有发现任何有用的东西。我会再试一次。 如果您对这个问题感兴趣,为什么不支持 51 区提案 jail-breaking Stack Exchange site 【参考方案1】:我在 SpringBoard 转储中找到了这个,我认为这对你有用:
在 SBWallpaperView.h 中:
- (void)replaceWallpaperWithImage:(id)image;
在 SBUIController.h 中:
- (id)wallpaperView;
所以你可以这样做:
[(SBWallpaperView *)[SBUIController sharedInstance] wallpaperView] replaceWallpaperWithImage:anImage];
这是一种方式。
我发现的另一个是使用 SBWallpaperView 的+ (void)noteWallpaperPreferencesChanged;
,我不太确定这个,但看起来如果你按照你在尝试的第一件事中所做的那样,然后使用它而不是重新启动,它可能会起作用。
【讨论】:
你在哪里找到这些头文件的? 我转储了 SpringBoard 可执行文件。 如果这个答案对你有用,你介意接受它并给我赏金吗? 我的坏家伙,上次我使用赏金时,它被授予最高代表问题。不管怎样,我已经接受了你的回答,希望能给你一些安慰。不过我还没有机会测试这个:(以上是关于以编程方式设置iOS背景/锁屏图像?的主要内容,如果未能解决你的问题,请参考以下文章
设置 UIBarButtonItem 的背景图像以编程方式更改其大小