2014-11-19 2 views
0

Вот установка:Как я могу сделать снимок представления, выходящего за пределы видимости?

  1. Главный вид: (0, 0, 320, 548)
  2. подвид 1: (100, 200, 100, 300);
  3. Subview 2: (320, 0, 320, 548);

Как вы можете догадаться, subview 2 не виден, но все еще находится внутри основного вида.

Я использую этот код для создания моментального снимка:

[subview snapshotViewAfterScreenUpdates:YES]; 

То, что я пытаюсь сделать, это сделать снимок подвида 2 (то есть из видимых границ) и добавить это к подсмотру 1 (что видно). Представьте себе, что subview 1 является миниатюром подвью 2. Как и при наведении курсора мыши на окно, вы увидите предварительный просмотр.

Проблема заключается в том, что представление моментального снимка возвращает черный цвет, как если бы subview 2 вообще не рисовался. Есть ли способ, которым я могу это решить?

Метод моментального снимка был тщательно протестирован и отлично работает.

EDIT: Могу ли я заставить subview 2 рисовать себя?

+0

взглянуть на мой [ответить] [1] на этот вопрос: [1]: http://stackoverflow.com/a/26970607/3399208 – mityaika07

+0

К сожалению, это не работайте над WKWebView, но он работает с другими видами. Мне нужно это для WKWebView. – Vulkan

ответ

0

Попробуйте что-нибудь вроде этого - лучше?

UIGraphicsBeginImageContext(yourSubview.frame.size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[[yourSubview layer] renderInContext: context]; 
UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();