如何拍摄超出可见边界的视图的快照?

时间:2014-11-19 13:48:01

标签: ios objective-c uiview snapshot

以下是设置:

  1. 主要观点:(0,0,320,548)
  2. 子视图1:(100,200,100,300);
  3. 子视图2:(320,0,320,548);
  4. 您可以猜测子视图2不可见但仍在主视图中。

    我使用此代码拍摄快照:

    [subview snapshotViewAfterScreenUpdates:YES];
    

    我要做的是拍摄子视图2的快照(超出可见范围) 并将其添加到子视图1(可见)。想象一下,好像子视图1是缩略图 子视图2.就像当您将鼠标悬停在窗口上并显示预览时一样。

    问题是快照视图返回黑色,就像根本没有绘制子视图2一样。 有没有办法解决这个问题?

    快照方法已经过广泛测试,效果很好。

    编辑:我可以强制子视图2绘制自己吗?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情 - 更好吗?

UIGraphicsBeginImageContext(yourSubview.frame.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[[yourSubview layer] renderInContext: context];
UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();