Вынудите UIView сразу перерисовать, вместо во время цикла следующего запуска

Я создал UIImagePicker / представление камеры с кнопкой на панели инструментов и пользовательской кнопкой для взятия снимка. Я не могу действительно измениться на использование пути по умолчанию из-за пользовательской кнопки, и я тяну сверх представления.

Когда Вы нажимаете кнопку, я хочу взять использование снимка экрана UIGetScreenImage (); однако, панель инструментов обнаруживается в изображении, даже если я скрываю его сначала:

//hide the toolbar
self.toolbar.hidden = YES; 

// capture the screen pixels
CGImageRef screenCap = UIGetScreenImage();

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

Я пытался делать следующее дополнение, но оно не помогло:

//hide the toolbar
self.toolbar.hidden = YES; 
[self.toolbar drawRect:CGRectMake(0, 0, 320, 52)];

// capture the screen pixels
CGImageRef screenCap = UIGetScreenImage();

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

Какие-либо предложения?Спасибо!

9
задан Justin Kent 13 May 2010 в 11:54
поделиться

1 ответ

Попробуйте скрыть элементы пользовательского интерфейса в отдельном селекторе и использовать метод -performSelectorOnMainThread: withObject: waitUntilDone: , используя ДА для аргумента waitUntilDone . Затем используйте другой селектор для захвата экрана.

3
ответ дан 3 November 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: