Удалить слой из renderInContext - PullRequest
       26

Удалить слой из renderInContext

1 голос
/ 27 сентября 2011

Я использую этот код для создания скриншота,

CGFloat breed = 768;
CGFloat hoogte = 975;
CGSize afmeting = CGSizeMake(breed, hoogte);
UIGraphicsBeginImageContext(afmeting);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image)];

Есть несколько слоев (кнопок и текстовых меток), которые мне не нужны на изображении.Есть ли способ удалить некоторые слои из renderincontext?

Теперь я использую textLabel.hidden = YES перед тем, как сделать снимок экрана, и в качестве скрытого установите значение NO, когда закончите.Также для кнопок и других ярлыков.

1 Ответ

0 голосов
/ 27 сентября 2011

Все кнопки и метки имеют свои собственные слои.Все эти слои могут быть отображены в некотором графическом контексте.Теперь, когда вы генерируете свой self.view.layer как изображение, вы можете попытаться создать другое представление, которое будет состоять только из элементов, которые вы хотите визуализировать (удерживая ваши метки и кнопки отдельно в другом представлении, которое будет перекрывать ваш «вид изображения»)или вы можете визуализировать все компоненты один за другим, не включая ваши кнопки (хотя это, вероятно, потребует больше усилий, чем сейчас).Если вы подумаете о том, чтобы сделать один вид поверх другого, имейте в виду, что все входные данные (касания и события) в виде сверху должны быть направлены в вид снизу, если вы хотите, чтобы он реагировал соответствующим образом.

...