У меня такая ситуация, я хочу программно взять экран печати текущего вида, видимый пользователю, и сохранить его в фотоальбоме.Проблема в том, что я не хочу, чтобы все представления в иерархии были видны.Я планировал:
- Сделать копию иерархии представлений.
- Скрыть подпункты, которые не были интересны.
- Возьмите экран печати.
- Сохраните его в фотоальбом.
Проблема в том, что я застрял на первой точке.Поскольку UIView
не реализует протокол NSCopying
, я не могу сделать глубокую копию иерархии представлений.Я пытался архивировать и разархивировать мнения, но это было доступно только на dektop.
На мой взгляд, здесь есть два варианта:
a) Реализовать протокол NSCopying для всех представлений и подпредставлений.б) Исчезает белый вид, покрывающий весь экран (что-то вроде эффекта вспышки, когда вы берете экран печати вручную), и в этот момент я скрываю нужные мне виды.
Есть ли какой-то другой способ приближения?эта проблема, которую я пропустил?
Редактировать:
UIGraphicsBeginImageContext([[wordManager mainWorkViewController] view].frame.size);
[[[[wordManager mainWorkViewController] view] layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
С уважением // Abeansits