我创建了一个UIImagePicker /摄像头视图,带有工具栏和用于拍摄快照的自定义按钮.由于自定义按钮,我无法真正更改为使用默认方式,而且我正在绘制视图的顶部.
当你点击按钮时,我想使用UIGetScreenImage()获取截图; 但是,即使我先隐藏它,工具栏也会显示在图像中:
//hide the toolbar
self.toolbar.hidden = YES;
// capture the screen pixels
CGImageRef screenCap = UIGetScreenImage();
Run Code Online (Sandbox Code Playgroud)
我很确定这是因为即使工具栏被隐藏,它也会在函数返回后重新绘制,然后我们进入下一个运行循环 - 调用UIGetScreenImage之后.
我尝试进行以下添加,但它没有帮助:
//hide the toolbar
self.toolbar.hidden = YES;
[self.toolbar drawRect:CGRectMake(0, 0, 320, 52)];
// capture the screen pixels
CGImageRef screenCap = UIGetScreenImage();
Run Code Online (Sandbox Code Playgroud)
我也尝试使用setNeedsDisplay,但这也不起作用,因为在当前函数返回后再次进行绘制.
有什么建议?谢谢!
更新在运行循环中完成.
只需添加:
self.toolbar.hidden = YES;
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
CGImageRef screenCap = UIGetScreenImage();
尝试将 UI 元素隐藏在单独的选择器中,并使用该-performSelectorOnMainThread:withObject:waitUntilDone:
方法,使用YES
forwaitUntilDone
参数。然后使用另一个屏幕捕获选择器。
归档时间: |
|
查看次数: |
5290 次 |
最近记录: |