2013-10-03 2 views
0

Я принимаю снимок экрана с этим кодомiOS7 скриншот не принимая во внимание эффект размытия

- (UIImage *)screenshot { 
    UIGraphicsBeginImageContext(self.bounds.size); 
    [self.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return image; 
} 

но полученное изображение не имеет альфа и размытия эффектов показывая правильно

каким-либо образом исправить это?

ответ

2

Когда вы просматриваете документацию «renderInContext», вы можете видеть, что она имеет некоторые недостатки, когда дело касается анимации и так далее. Попробуйте это, если нет необходимости снимать скриншот слоя непосредственно

- (UIImage *)screenshot { 
    UIGraphicsBeginImageContextWithOptions(self.view.frame.size, YES, 0); 
    [self.view drawViewHierarchyInRect:self.view.frame afterScreenUpdates:NO]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return newImage; 
} 
Смежные вопросы