弹出窗口的屏幕截图不清晰

Posted

技术标签:

【中文标题】弹出窗口的屏幕截图不清晰【英文标题】:Screenshot of popover not coming clear 【发布时间】:2013-01-07 12:09:09 【问题描述】:

我正在开发一个 ios 应用程序,我需要在其中截取图像,但我无法在屏幕上截取正确的弹出框截图。 这是我的实际图像

截屏后我得到以下图像

我的抓图代码如下

    UIWindow *topWindow = nil;

    topWindow = [[[UIApplication sharedApplication] delegate] window];

    CGSize size = CGSizeZero;
    if(view == nil)
        size =  [[topWindow.rootViewController view] bounds].size;
    else
        size =  [view bounds].size;
    

    if([UIScreen instancesRespondToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0f)
        UIGraphicsBeginImageContextWithOptions(size,NO,2.0f);
    else
        UIGraphicsBeginImageContext(size);
    

    if(view == nil)
        // Put everything in the current view into the screenshot
        [[[[topWindow subviews] objectAtIndex:0] layer] renderInContext:UIGraphicsGetCurrentContext()];

        //Code for capturing popover
        [[[topWindow subviews].lastObject layer] renderInContext:UIGraphicsGetCurrentContext()];

        
    else
        // Put everything in the current view into the screenshot
        [[view layer] renderInContext:UIGraphicsGetCurrentContext()];
    

    // Save the current image context info into a UIImage
    UIImage *imageToBeEdited = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

【问题讨论】:

从主线程执行该例程。 嗯..那太荒谬了。我怀疑绘图一致性问题。您的屏幕截图显示未完成的工作中的图像。 我也有同样的问题... Sunil 你的问题解决了吗?? 【参考方案1】:

请尝试更改:

if(view == nil)

   size =  [[topWindow.rootViewController view] bounds].size;
else
   size =  [view bounds].size;

到:

if(view == nil)

    size =  [[topWindow.rootViewController view] bounds].size;
else
    size =  view.frame.size;

【讨论】:

以上是关于弹出窗口的屏幕截图不清晰的主要内容,如果未能解决你的问题,请参考以下文章

禁用 Chrome for Android 文本选择弹出窗口

ROBOT Framework无法单击弹出接受按钮

如何缩小 chrome 扩展的弹出窗口

iPad:如何处理有关人类准则的多个弹出窗口?

wpf 如何让弹出窗口总在屏幕范围之内?

角度材料:弹出窗口:允许窗口移动到第二个监视器屏幕