Сделайте снимок элемента Group с помощью WatchKit и сохраните его в камеру.

Я пытаюсь программно сделать снимок элемента группы и его содержимого (текстовую метку) и сохранить его в кадре камеры.

Я бы обычно делал что-то подобное (см. Фрагмент кода) для приложения для iPhone, но с WatchKit элемент Group имеет структуру, отличную от UIView.

Любая помощь приветствуется. Вот мой код:

    // grab reference to the area you'd like to capture
    WKInterfaceGroup *theArea = _theGroup;

    // define the size and grab a UIImage from it
    UIGraphicsBeginImageContextWithOptions(theArea.bounds.size, theArea.opaque, 0.0);
    [theArea.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *screengrab = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    // save screengrab to Camera Roll
    UIImageWriteToSavedPhotosAlbum(screengrab, nil, nil, nil);

1 ответ

Решение

К сожалению, в текущей версии WatchKit нет методов в виде моментальных снимков, поэтому методы, подобные упомянутой вами, недоступны. На самом деле, существует очень мало свойств, которые можно прочитать из интерфейса WatchKit.

Единственный способ, которым вы сможете сделать что-то подобное, это если вы визуализируете группу как изображение в вашем расширении WatchKit, а затем используйте это изображение для заполнения WKInterfaceImage (или соответствующее фоновое изображение) на часах. Конечно, это означает, что вам нужно создать собственный код для рисования, который имитирует внешний вид элементов управления Watch. В зависимости от сложности вашего интерфейса, это может занять много работы.

Другие вопросы по тегам