gpt4 book ai didi

iphone - 强制 UIView 立即重绘,而不是在下一个运行循环期间重绘

转载 作者:行者123 更新时间:2023-12-03 18:32:50 25 4
gpt4 key购买 nike

我创建了一个 UIImagePicker/相机 View ,带有工具栏和用于拍摄快照的自定义按钮。由于自定义按钮,我无法真正更改为使用默认方式,并且我在 View 顶部绘图。

当你点击按钮时,我想使用 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,但这也不起作用,因为绘制再次发生在当前函数返回之后。

有什么建议吗?谢谢!

最佳答案

更新是在运行循环中完成的。

只需添加:

self.toolbar.hidden = YES;

[[NSRunLoop currentRunLoop] runUntilDate: [NSDate dateWithTimeIntervalSinceNow: 0.01]];

CGImageRef screenCap = UIGetScreenImage();

关于iphone - 强制 UIView 立即重绘,而不是在下一个运行循环期间重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2830840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com