Мне удалось (с помощью этого сообщения) открыть создать PLStaticWallpaperImageViewController
из частной среды PhotoLibrary, которая позволяет напрямую устанавливать обои и экран блокировки (используя тот же пользовательский интерфейс, что и приложение «Фотографии»). К сожалению, функции обрезки/масштабирования изображения, похоже, не работают, так как прикосновения к самому просмотру изображения, кажется, не проходят (основной вид также не закрывается должным образом после нажатия кнопок отмены/установки, но это не так важно).
У меня есть проект Xcode, демонстрирующий настройку обоев (можно запустить как в симуляторе, так и на устройстве без взлома):
https://github.com/newenglander/WallpaperTest/
Код довольно прост и включает в себя ViewController
, наследующий от PLStaticWallpaperImageViewController
и реализующий метод инициализации, подобный следующему:
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [self initWithUIImage:[UIImage imageWithContentsOfFile:@"/System/Library/WidgetResources /ibutton/[email protected]"]];
self.allowsEditing = YES;
self.saveWallpaperData = YES;
return self;
}
(После первого запуска необходимо будет разрешить доступ к библиотеке фотографий, и почему-то всплывающее окно для этого появляется за приложением, а не сверху.)
Возможно, кто-то понимает, почему обрезка/масштабирование не работает, или может дать мне альтернативный способ установки обоев в приложении (конечно, предназначенном для Cydia, а не для App Store)?