Как мне сохранить часть графического контекста, не мешая пользователю? - PullRequest
1 голос
/ 02 июля 2010

У меня такая ситуация, я хочу программно взять экран печати текущего вида, видимый пользователю, и сохранить его в фотоальбоме.Проблема в том, что я не хочу, чтобы все представления в иерархии были видны.Я планировал:

  1. Сделать копию иерархии представлений.
  2. Скрыть подпункты, которые не были интересны.
  3. Возьмите экран печати. ​​
  4. Сохраните его в фотоальбом.

Проблема в том, что я застрял на первой точке.Поскольку UIView не реализует протокол NSCopying, я не могу сделать глубокую копию иерархии представлений.Я пытался архивировать и разархивировать мнения, но это было доступно только на dektop.

На мой взгляд, здесь есть два варианта:
a) Реализовать протокол NSCopying для всех представлений и подпредставлений.б) Исчезает белый вид, покрывающий весь экран (что-то вроде эффекта вспышки, когда вы берете экран печати вручную), и в этот момент я скрываю нужные мне виды.

Есть ли какой-то другой способ приближения?эта проблема, которую я пропустил?

Редактировать:

    UIGraphicsBeginImageContext([[wordManager mainWorkViewController] view].frame.size);  
    [[[[wordManager mainWorkViewController] view] layer] renderInContext:UIGraphicsGetCurrentContext()];   
    UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();

С уважением // Abeansits

1 Ответ

0 голосов
/ 08 июля 2010

Так что, к сожалению, никто не смог оказать какую-либо помощь по этому вопросу. Как я решил проблему:

Я удалил элементы, которые мне не нужны на экране печати. Я сделал это с помощью анимации, чтобы не было графического мерцания. В конце концов, это выглядело довольно хорошо, к сожалению, я никогда не решал исходную проблему.

Пожалуйста, опубликуйте исправление, если кто-нибудь найдет его. С уважением

// Abeansits

...